Files
retail/lib/features/auth/presentation/widgets/auth_wrapper.dart
Phuoc Nguyen 77440ac957 login
2025-10-10 17:51:31 +07:00

37 lines
1.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../providers/auth_provider.dart';
import '../pages/login_page.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 loading indicator while checking auth status
if (authState.isLoading && authState.user == null) {
return const Scaffold(
body: Center(
child: CircularProgressIndicator(),
),
);
}
// Show child widget if authenticated, otherwise show login page
if (authState.isAuthenticated) {
return child;
} else {
return const LoginPage();
}
}
}