diff options
Diffstat (limited to 'lib/main.dart')
-rw-r--r-- | lib/main.dart | 67 |
1 files changed, 40 insertions, 27 deletions
diff --git a/lib/main.dart b/lib/main.dart index 0d97e25..a0ff04a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,45 +1,58 @@ +import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; -void main() { - runApp(const MyApp()); +import 'providers/theme_provider.dart'; +import 'routes.dart'; +import 'settings/themes.dart'; + +void main(List<String> args) async { + WidgetsFlutterBinding.ensureInitialized(); + await Firebase.initializeApp(); + return runApp(const MainContent()); } -class MyApp extends StatelessWidget { - const MyApp({super.key}); +class MainContent extends StatefulWidget { + const MainContent({super.key}); @override - Widget build(BuildContext context) { - return MaterialApp( - title: 'LinkChat', - theme: ThemeData( - colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), - useMaterial3: true, - ), - home: const MyHomePage(title: 'LinkChat'), - ); - } + State<MainContent> createState() => _MainContentState(); } -class MyHomePage extends StatefulWidget { - const MyHomePage({super.key, required this.title}); +class _MainContentState extends State<MainContent> { + int contador = 0; - final String title; + @override + void initState() { + super.initState(); + contador = 0; + } @override - State<MyHomePage> createState() => _MyHomePageState(); + Widget build(BuildContext context) { + return MultiProvider( + providers: [ + ChangeNotifierProvider(create: (_) => ThemeProvider()), + ], + child: const LinkChat(), + ); + } } -class _MyHomePageState extends State<MyHomePage> { +class LinkChat extends StatelessWidget { + const LinkChat({super.key}); + @override Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - backgroundColor: Theme.of(context).colorScheme.inversePrimary, - title: Text(widget.title), - ), - body: Center( - child: Text(widget.title), - ), + final ThemeProvider provider = context.watch<ThemeProvider>(); + final ThemeData? theme = provider.theme; + provider.syncFromPrefs(); + return MaterialApp( + theme: theme ?? ThemeSettings.lightTheme, + darkTheme: theme ?? ThemeSettings.darkTheme, + themeMode: ThemeMode.system, + routes: getApplicationRoutes(), + initialRoute: '/login', ); } } |