14 Widget
build(BuildContext context) {
15 return BlocBuilder<ThemeModeBloc, ThemeModeState>(
16 builder: (context, state) {
18 crossAxisAlignment: CrossAxisAlignment.start,
19 mainAxisSize: MainAxisSize.min,
25 icon: HugeIcons.strokeRoundedSun01,
26 isActive: state.themeMode == ThemeMode.light,
31 .read<ThemeModeBloc>()
32 .add(const ChangeThemeMode(ThemeMode.light));
35 SizedBox(height: 8.sp),
38 icon: HugeIcons.strokeRoundedMoon02,
39 isActive: state.themeMode == ThemeMode.dark,
44 .read<ThemeModeBloc>()
45 .add(const ChangeThemeMode(ThemeMode.dark));
48 SizedBox(height: 8.sp),
51 icon: HugeIcons.strokeRoundedSettings03,
52 isActive: state.themeMode == ThemeMode.system,
57 .read<ThemeModeBloc>()
58 .add(const ChangeThemeMode(ThemeMode.system));
70 required String
label,
71 required IconData
icon,
73 required BuildContext context,
74 required
bool isEnabled,
78 opacity: isEnabled ? .9 : .2,
79 child: ElevatedButton(
80 onPressed: isEnabled ? onPressed : null,
81 style: ElevatedButton.styleFrom(
83 overlayColor: Theme.of(context).primaryColor.withOpacity(0.11),
85 shape: RoundedRectangleBorder(
86 borderRadius: BorderRadius.circular(8.sp),
91 mainAxisAlignment: MainAxisAlignment.spaceBetween,
97 color: Theme.of(context).colorScheme.onSurface,
100 SizedBox(width: 15.sp),
103 style: Theme.of(context).textTheme.bodyMedium?.copyWith(
104 color: Theme.of(context).colorScheme.onSurface,
112 activeColor: Theme.of(context).colorScheme.primary,