这是CaiYouHui前端,一个关于flutter的安卓app,前端使用flutter实现

protected_widget.dart 821B

1234567891011121314151617181920212223242526272829303132333435
  1. import 'package:flutter/material.dart';
  2. import 'package:provider/provider.dart';
  3. import '../../providers/auth_provider.dart';
  4. import '../../screens/auth/login_screen.dart';
  5. import '../common/loading_indicator.dart';
  6. class ProtectedWidget extends StatelessWidget {
  7. final Widget child;
  8. final Widget? loadingWidget;
  9. const ProtectedWidget({
  10. super.key,
  11. required this.child,
  12. this.loadingWidget,
  13. });
  14. @override
  15. Widget build(BuildContext context) {
  16. final authProvider = Provider.of<AuthProvider>(context);
  17. if (authProvider.isLoading) {
  18. return loadingWidget ?? const LoadingIndicator();
  19. }
  20. if (!authProvider.isAuthenticated) {
  21. return LoginScreen(
  22. onSuccess: () {
  23. // 登录成功后的回调
  24. },
  25. );
  26. }
  27. return child;
  28. }
  29. }