import 'package:flutter/material.dart'; import 'package:mensaappbackend/providers/pageProvider.dart'; import 'package:mensaappbackend/providers/timeProvider.dart'; import 'package:mensaappbackend/providers/viewProvider.dart'; import 'package:provider/provider.dart'; import 'package:supabase_flutter/supabase_flutter.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); String currentURL = Uri.base.toString(); List url_parts = currentURL.split(":"); currentURL = "${url_parts[0]}:${url_parts[1]}:8000"; await Supabase.initialize( url: "https://ieyivhvzkecsblqaylsd.supabase.co/", anonKey: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImlleWl2aHZ6a2Vjc2JscWF5bHNkIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDEwMTUzMTYsImV4cCI6MjA1NjU5MTMxNn0.hf18LiI2zZRTypUCkm-Ksbj3y1krGyVIw5OzUbgCG0Y" ); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { return MultiProvider( providers: [ ChangeNotifierProvider( create: (context) => PageProvider(), ), ChangeNotifierProvider( create: (context) => ViewProvider(), ), ChangeNotifierProvider( create: (context) => TimeProvider(), ) ], child: MaterialApp( title: 'Mensa Dashboard', debugShowCheckedModeBanner: false, theme: ThemeData( colorScheme: const ColorScheme( primary: Color.fromRGBO(236, 92, 61, 1), onPrimary: Color.fromRGBO(240, 240, 240, 1), secondary: Color.fromRGBO(203, 203, 203, 1), onSecondary: Color.fromRGBO(60, 60, 60, 1), error: Colors.red, onError: Colors.white, surface: Colors.white, onSurface: Color.fromRGBO(60, 60, 60, 1), brightness: Brightness.light, tertiary: Color.fromRGBO(251, 216, 17, 1), onTertiary: Color.fromRGBO(60, 60, 60, 1)), appBarTheme: const AppBarTheme( iconTheme: IconThemeData(color: Color.fromRGBO(240, 240, 240, 1)) ), useMaterial3: true, ), home: const MyHome()), ); } } class MyHome extends StatefulWidget { const MyHome({super.key}); @override State createState() => _MyHomeState(); } class _MyHomeState extends State { bool initial = false; @override void initState() { initial = true; super.initState(); } @override Widget build(BuildContext context) { var supabase = Supabase.instance.client; if (initial) { initial = false; if (supabase.auth.currentSession == null) { Provider.of(context, listen: false).selectedPage = 0; print("not logged in"); } else if (supabase.auth.currentSession!.isExpired) { Provider.of(context, listen: false).selectedPage = 0; print("expired"); } else { Provider.of(context, listen: false).selectedPage = 1; print("logged in"); } } return Consumer( builder: (context, pageProvider, child) { return pageProvider.pages[pageProvider.selectedPage]; }, ); } }