import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../providers/auth_provider.dart'; import '../pages/login_page.dart'; import 'splash_screen.dart'; /// Wrapper widget that checks authentication status /// Shows login page if not authenticated, otherwise shows child widget class AuthWrapper extends ConsumerWidget { const AuthWrapper({ super.key, required this.child, }); final Widget child; @override Widget build(BuildContext context, WidgetRef ref) { final authState = ref.watch(authProvider); print('AuthWrapper build: isAuthenticated=${authState.isAuthenticated}, isLoading=${authState.isLoading}'); // Show splash screen while checking auth status if (authState.isLoading && authState.user == null) { return const SplashScreen(); } // Smooth fade transition between screens return AnimatedSwitcher( duration: const Duration(milliseconds: 400), switchInCurve: Curves.easeInOut, switchOutCurve: Curves.easeInOut, child: authState.isAuthenticated ? KeyedSubtree( key: const ValueKey('main_app'), child: child, ) : const KeyedSubtree( key: ValueKey('login_page'), child: LoginPage(), ), ); } }