import 'package:flutter/material.dart'; import '../api/token.dart'; import '../log/log.dart'; import 'login_context.dart'; class LoginContainer extends StatefulWidget { const LoginContainer({Key? key, required this.child}) : super(key: key); final Widget child; @override _LoginContainerState createState() => _LoginContainerState(); } class _LoginContainerState extends State { bool _loggedIn = false; bool _loading = true; @override void initState() { super.initState(); _init(); } void _init() async { final token = await Token.getInstance().getToken(); Log.i("The token value is $token"); if (token != null) { setState(() { _loggedIn = true; _loading = false; }); } else { setState(() { _loggedIn = false; _loading = false; }); } } @override Widget build(BuildContext context) { return LoginContext( loggedIn: _loggedIn, child: _loading ? MaterialApp( home: Container( color: Colors.white, child: const Center(child: CircularProgressIndicator()), ), ) : widget.child, onLoggin: (bool login) { if (_loggedIn != login) { setState(() { _loggedIn = login; }); } }, ); } }