import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../providers/auth_provider.dart'; import '../../screens/auth/login_screen.dart'; import '../common/loading_indicator.dart'; class ProtectedWidget extends StatelessWidget { final Widget child; final Widget? loadingWidget; const ProtectedWidget({ super.key, required this.child, this.loadingWidget, }); @override Widget build(BuildContext context) { final authProvider = Provider.of(context); // 如果正在加载,显示loading if (authProvider.isLoading) { return loadingWidget ?? const LoadingIndicator(); } // 如果未认证,显示登录页 if (!authProvider.isAuthenticated) { return LoginScreen( onSuccess: () { // 登录成功后的回调 }, ); } // 已认证,显示子组件 return child; } }