feat: ajout d'un sélecteur de thèmes avec trois options (P'titsPas, Pastel, Sombre)

This commit is contained in:
Julien Martin
2025-04-30 11:01:15 +02:00
parent 9321430818
commit 9519fafe3a
5 changed files with 253 additions and 55 deletions
+19 -13
View File
@@ -3,15 +3,18 @@ import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:google_fonts/google_fonts.dart';
import 'theme/app_theme.dart';
import 'theme/theme_provider.dart';
import 'screens/auth/login_screen.dart';
import 'screens/auth/register_screen.dart';
import 'screens/auth/parent_register_screen.dart';
import 'screens/home/home_screen.dart';
import 'navigation/app_router.dart';
void main() {
runApp(
ChangeNotifierProvider(
create: (_) => AppTheme(),
MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => ThemeProvider()),
],
child: const MyApp(),
),
);
@@ -24,10 +27,6 @@ final _router = GoRouter(
path: '/login',
builder: (context, state) => const LoginScreen(),
),
GoRoute(
path: '/register',
builder: (context, state) => const RegisterScreen(),
),
GoRoute(
path: '/parent-register',
builder: (context, state) => const ParentRegisterScreen(),
@@ -44,12 +43,19 @@ class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer<AppTheme>(
builder: (context, appTheme, _) => MaterialApp.router(
title: 'P\'titsPas',
theme: appTheme.lightTheme,
routerConfig: _router,
),
return Consumer<ThemeProvider>(
builder: (context, themeProvider, _) {
final appTheme = AppTheme();
return MaterialApp.router(
title: 'P\'titsPas',
theme: themeProvider.currentTheme == ThemeType.darkTheme
? appTheme.darkTheme
: (themeProvider.currentTheme == ThemeType.pastelTheme
? appTheme.pastelTheme
: appTheme.lightTheme),
routerConfig: _router,
);
},
);
}
}