|
@@ -28,30 +28,53 @@ class _LoginScreenState extends State<LoginScreen> {
|
|
void initState() {
|
|
void initState() {
|
|
super.initState();
|
|
super.initState();
|
|
|
|
|
|
|
|
+ // Verifica la sesión almacenada
|
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
|
- final sucursalViewModel =
|
|
|
|
- Provider.of<SucursalViewModel>(context, listen: false);
|
|
|
|
- sucursalViewModel.sincronizarSucursales().then((_) {
|
|
|
|
- setState(() {
|
|
|
|
- final sucursales = sucursalViewModel.sucursales;
|
|
|
|
- _selectedSucursal = sucursales.firstWhere(
|
|
|
|
- (sucursal) => sucursal.seleccionado == 1,
|
|
|
|
- orElse: () => sucursales.isNotEmpty ? sucursales[0] : Sucursal(),
|
|
|
|
|
|
+ final loginViewModel =
|
|
|
|
+ Provider.of<LoginViewModel>(context, listen: false);
|
|
|
|
+
|
|
|
|
+ // Verificar la sesión
|
|
|
|
+ loginViewModel.checkSession().then((_) {
|
|
|
|
+ if (loginViewModel.status == Status.authenticated) {
|
|
|
|
+ print("Sesión activa detectada, redirigiendo al HomeScreen.");
|
|
|
|
+ Navigator.pushReplacement(
|
|
|
|
+ context,
|
|
|
|
+ MaterialPageRoute(builder: (context) => const HomeScreen()),
|
|
);
|
|
);
|
|
- });
|
|
|
|
- });
|
|
|
|
|
|
+ } else {
|
|
|
|
+ print("No se detectó sesión, mostrando la pantalla de login.");
|
|
|
|
+ final sucursalViewModel =
|
|
|
|
+ Provider.of<SucursalViewModel>(context, listen: false);
|
|
|
|
+ sucursalViewModel.sincronizarSucursales().then((_) {
|
|
|
|
+ setState(() {
|
|
|
|
+ final sucursales = sucursalViewModel.sucursales;
|
|
|
|
+ _selectedSucursal = sucursales.firstWhere(
|
|
|
|
+ (sucursal) => sucursal.seleccionado == 1,
|
|
|
|
+ orElse: () =>
|
|
|
|
+ sucursales.isNotEmpty ? sucursales[0] : Sucursal(),
|
|
|
|
+ );
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
|
|
- Provider.of<PermisoViewModel>(context, listen: false)
|
|
|
|
- .sincronizarPermisos();
|
|
|
|
- Provider.of<UsuarioViewModel>(context, listen: false)
|
|
|
|
- .sincronizarUsuarios();
|
|
|
|
|
|
+ Provider.of<PermisoViewModel>(context, listen: false)
|
|
|
|
+ .sincronizarPermisos();
|
|
|
|
+ Provider.of<UsuarioViewModel>(context, listen: false)
|
|
|
|
+ .sincronizarUsuarios();
|
|
|
|
+ }
|
|
|
|
+ });
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
@override
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
Widget build(BuildContext context) {
|
|
- final size = MediaQuery.sizeOf(context);
|
|
|
|
final loginViewModel = Provider.of<LoginViewModel>(context);
|
|
final loginViewModel = Provider.of<LoginViewModel>(context);
|
|
|
|
+
|
|
|
|
+ // Mostrar la pantalla de carga `Cargando` mientras verifica la sesión
|
|
|
|
+ if (loginViewModel.isLoading) {
|
|
|
|
+ return const Cargando(); // Usa tu widget Cargando aquí
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ final size = MediaQuery.sizeOf(context);
|
|
final sucursalViewModel = Provider.of<SucursalViewModel>(context);
|
|
final sucursalViewModel = Provider.of<SucursalViewModel>(context);
|
|
final sucursales = sucursalViewModel.sucursales;
|
|
final sucursales = sucursalViewModel.sucursales;
|
|
final errores = loginViewModel.errores;
|
|
final errores = loginViewModel.errores;
|