main_screen.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import 'package:flutter/material.dart';
  2. import 'package:provider/provider.dart';
  3. import '../../viewmodels/viewmodels.dart';
  4. import '../../views/login/login_screen.dart';
  5. import '../home/home_screen.dart';
  6. class MainScreen extends StatefulWidget {
  7. const MainScreen({super.key});
  8. @override
  9. MainScreenState createState() => MainScreenState();
  10. }
  11. class MainScreenState extends State<MainScreen> {
  12. @override
  13. void initState() {
  14. super.initState();
  15. Future(() async {
  16. Provider.of<LoginViewModel>(context, listen: false).checkSession();
  17. });
  18. }
  19. @override
  20. Widget build(BuildContext context) {
  21. return Consumer(builder: (context, LoginViewModel login, _) {
  22. switch (login.status) {
  23. case Status.uninitialized:
  24. return const Scaffold(
  25. body: Center(
  26. child: CircularProgressIndicator(),
  27. ),
  28. );
  29. case Status.unauthenticated:
  30. return const LoginScreen();
  31. case Status.authenticating:
  32. return const Scaffold(
  33. body: Center(
  34. child: CircularProgressIndicator(),
  35. ),
  36. );
  37. case Status.authenticated:
  38. return const HomeScreen();
  39. }
  40. });
  41. }
  42. }