import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:lba/screens/auth/onboarding_page.dart'; import 'package:lba/screens/mains/navigation/navigation.dart'; import 'package:lba/screens/auth/bloc/auth_bloc.dart'; class AuthWrapper extends StatefulWidget { const AuthWrapper({super.key}); @override State createState() => _AuthWrapperState(); } class _AuthWrapperState extends State { final GlobalKey navigatorKey = GlobalKey(); @override Widget build(BuildContext context) { return BlocListener( listener: (context, state) { if (state is AuthInitial) { if (FirebaseAuth.instance.currentUser == null) { Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute(builder: (context) => const OnboardingPage()), (route) => false, ); } } }, child: StreamBuilder( stream: FirebaseAuth.instance.authStateChanges(), builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { return const Scaffold( body: Center( child: CircularProgressIndicator(), ), ); } final bool isLoggedIn = snapshot.hasData && snapshot.data != null; if (isLoggedIn) { return const MainScreen(); } else { return const OnboardingPage(); } }, ), ); } }