import 'package:flutter/material.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:provider/provider.dart'; import 'firebase_options.dart'; import 'providers/auth_provider.dart'; import 'providers/kandang_provider.dart'; import 'providers/panen_provider.dart'; import 'providers/penjadwalan_provider.dart'; import 'providers/riwayat_provider.dart'; // import 'services/panen_scheduler.dart'; // TODO: Enable after scheduler fixed import 'screens/landing_page.dart'; import 'screens/login_page.dart'; import 'screens/signup_page.dart'; import 'screens/home_page.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); // Initialize background scheduler untuk panen otomatis // TODO: Enable setelah scheduler stabil // await PanenScheduler.initialize(); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MultiProvider( providers: [ ChangeNotifierProvider(create: (_) => AuthProvider()), ChangeNotifierProvider(create: (_) => KandangProvider()), ChangeNotifierProvider(create: (_) => PanenProvider()), ChangeNotifierProvider(create: (_) => PenjadwalanProvider()), ChangeNotifierProvider(create: (_) => TelurProvider()), ], child: MaterialApp( title: 'TelurKu', debugShowCheckedModeBanner: false, theme: ThemeData( useMaterial3: true, colorScheme: ColorScheme.fromSeed( seedColor: const Color(0xFFF4D03F), brightness: Brightness.light, ), ), home: const AuthWrapper(), routes: { '/landing': (context) => const LandingPage(), '/login': (context) => const LoginPage(), '/signup': (context) => const SignupPage(), '/home': (context) => const HomePage(), }, ), ); } } class AuthWrapper extends StatelessWidget { const AuthWrapper({super.key}); @override Widget build(BuildContext context) { return Consumer( builder: (context, authProvider, _) { if (authProvider.isLoading) { return const Scaffold( body: Center(child: CircularProgressIndicator()), ); } if (authProvider.isLoggedIn) { return const HomePage(); } return const LandingPage(); }, ); } }