Skip to content

Commit 8c539cf

Browse files
author
Vivek Chib
committed
added light_dark_theme_toggle package
1 parent 61ca64d commit 8c539cf

File tree

5 files changed

+57
-174
lines changed

5 files changed

+57
-174
lines changed

lib/views/widgets/animated_theme_switch/painter.dart

Lines changed: 0 additions & 76 deletions
This file was deleted.

lib/views/widgets/animated_theme_switch/widget.dart

Lines changed: 0 additions & 74 deletions
This file was deleted.

lib/views/widgets/appbar.dart

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import 'package:flutter/material.dart';
2+
import 'package:flutter_animate/flutter_animate.dart';
23
import 'package:flutter_curve_visualizer/utils/theme/theme_provider.dart';
3-
import 'package:flutter_curve_visualizer/views/widgets/animated_theme_switch/widget.dart';
4+
import 'package:flutter_curve_visualizer/views/widgets/screen_mode.dart';
45
import 'package:flutter_svg/flutter_svg.dart';
6+
import 'package:light_dark_theme_toggle/light_dark_theme_toggle.dart';
57
import 'package:provider/provider.dart';
68
import 'package:url_launcher/url_launcher.dart';
79

@@ -12,34 +14,56 @@ class HomeAppBar extends StatelessWidget implements PreferredSizeWidget {
1214
Widget build(BuildContext context) {
1315
final theme = Theme.of(context);
1416

17+
final screenMode = ScreenModeWidget.of(context);
18+
1519
final actionPadding = const EdgeInsets.only(right: 12.0);
1620

17-
return AppBar(
18-
title: const Text('Flutter Curve Visualizer'),
19-
actions: [
20-
Padding(
21-
padding: actionPadding,
22-
child: IconButton(
23-
onPressed: () {
24-
launchUrl(Uri.parse(
25-
"https://github.com/vchib1/flutter-curve-visualizer"));
26-
},
27-
icon: SvgPicture.asset(
28-
"assets/svg/github.svg",
29-
width: theme.iconTheme.size ?? 24,
30-
height: theme.iconTheme.size ?? 24,
31-
colorFilter: ColorFilter.mode(
32-
theme.iconTheme.color ?? Colors.black,
33-
BlendMode.srcIn,
21+
final width = MediaQuery.sizeOf(context).width;
22+
23+
double hPadding = switch (screenMode) {
24+
ScreenMode.mobile => 0,
25+
ScreenMode.tablet => 0,
26+
ScreenMode.web => width * 0.075,
27+
};
28+
29+
return Padding(
30+
padding: EdgeInsets.symmetric(horizontal: hPadding),
31+
child: AppBar(
32+
title: const Text('Flutter Curve Visualizer'),
33+
actions: [
34+
Padding(
35+
padding: actionPadding,
36+
child: IconButton(
37+
onPressed: () {
38+
launchUrl(Uri.parse(
39+
"https://github.com/vchib1/flutter-curve-visualizer"));
40+
},
41+
icon: SvgPicture.asset(
42+
"assets/svg/github.svg",
43+
width: theme.iconTheme.size ?? 24,
44+
height: theme.iconTheme.size ?? 24,
45+
colorFilter: ColorFilter.mode(
46+
theme.iconTheme.color ?? Colors.black,
47+
BlendMode.srcIn,
48+
),
3449
),
3550
),
3651
),
37-
),
38-
Padding(
39-
padding: actionPadding,
40-
child: AnimatedThemeSwitcher(),
41-
),
42-
],
52+
Padding(
53+
padding: actionPadding,
54+
child: Consumer<ThemeProvider>(builder: (context, value, child) {
55+
return LightDarkThemeToggle(
56+
themeIconType: ThemeIconType.expand,
57+
duration: 500.milliseconds,
58+
reverseDuration: 500.milliseconds,
59+
value: value.getThemeMode() == ThemeMode.dark,
60+
onChanged: (isDark) {
61+
value.toggleTheme();
62+
});
63+
}),
64+
),
65+
],
66+
),
4367
);
4468
}
4569

pubspec.lock

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,14 @@ packages:
176176
url: "https://pub.dev"
177177
source: hosted
178178
version: "3.0.1"
179+
light_dark_theme_toggle:
180+
dependency: "direct main"
181+
description:
182+
name: light_dark_theme_toggle
183+
sha256: "1c8137460fd122f9d6652b97a5649c9f6faa489ae932bebb07d91c65b366c6e9"
184+
url: "https://pub.dev"
185+
source: hosted
186+
version: "1.0.0"
179187
lints:
180188
dependency: transitive
181189
description:

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ dependencies:
4040
flutter_svg: ^2.0.16
4141
flutter_animate: ^4.5.2
4242
equatable: ^2.0.7
43+
light_dark_theme_toggle: ^1.0.0
4344

4445
dev_dependencies:
4546
flutter_test:

0 commit comments

Comments
 (0)