From d98227b5ebf57081a950314c7328c1941ad86ea9 Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Mon, 4 Nov 2024 17:54:03 -0300 Subject: [PATCH] fix nav initialize --- lib/flutter_flow/nav/nav.dart | 51 +++++++++++++++++------------------ 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/lib/flutter_flow/nav/nav.dart b/lib/flutter_flow/nav/nav.dart index bc7d2897..66631037 100644 --- a/lib/flutter_flow/nav/nav.dart +++ b/lib/flutter_flow/nav/nav.dart @@ -42,22 +42,7 @@ class AppStateNotifier extends ChangeNotifier { } } -initializeRouter() async { - final bool isLogged = await StorageHelper.instance.get(SecureStorageKey.isLogged.value, Storage.SecureStorage) == 'true'; - final bool? haveLocal = await StorageHelper.instance.get(SecureStorageKey.haveLocal.value, Storage.SecureStorage) == 'true';; - final bool haveUserUUID = (await StorageHelper.instance.get(SQLiteStorageKey.userUUID.value, Storage.SQLiteStorage))?.isNotEmpty ?? false; - final bool haveDevUUID = (await StorageHelper.instance.get(SQLiteStorageKey.devUUID.value, Storage.SQLiteStorage))?.isNotEmpty ?? false; -} - GoRouter createRouter(AppStateNotifier appStateNotifier) { - final bool isLogged = await StorageHelper.instance.get(SecureStorageKey.isLogged.value, Storage.SecureStorage) == 'true'; - final bool? haveLocal = await StorageHelper.instance.get(SecureStorageKey.haveLocal.value, Storage.SecureStorage) == 'true';; - final bool haveUserUUID = (await StorageHelper.instance.get(SQLiteStorageKey.userUUID.value, Storage.SQLiteStorage))?.isNotEmpty ?? false; - final bool haveDevUUID = (await StorageHelper.instance.get(SQLiteStorageKey.devUUID.value, Storage.SQLiteStorage))?.isNotEmpty ?? false; - - log('() => isLogged: $isLogged'); - log('() => haveLocal: $haveLocal'); - return GoRouter( initialLocation: '/', debugLogDiagnostics: true, @@ -93,17 +78,31 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) { name: '_initialize', path: '/', builder: (context, _) { - try { - return isLogged && haveDevUUID && haveUserUUID - ? haveLocal == true - ? const HomePageWidget() - : const ReceptionPageWidget() - : const WelcomePageWidget(); - } catch (e) { - DialogUtil.error(context, e.toString()); - return const WelcomePageWidget(); - } - }, + return FutureBuilder( + future: () async { + final bool isLogged = await StorageHelper.instance.get(SecureStorageKey.isLogged.value, Storage.SecureStorage) == 'true'; + final bool haveLocal = await StorageHelper.instance.get(SecureStorageKey.haveLocal.value, Storage.SecureStorage) == 'true'; + final bool haveUserUUID = (await StorageHelper.instance.get(SQLiteStorageKey.userUUID.value, Storage.SQLiteStorage))?.isNotEmpty ?? false; + final bool haveDevUUID = (await StorageHelper.instance.get(SQLiteStorageKey.devUUID.value, Storage.SQLiteStorage))?.isNotEmpty ?? false; + + if (isLogged && haveDevUUID && haveUserUUID) { + return haveLocal ? const HomePageWidget() : const ReceptionPageWidget(); + } else { + return const WelcomePageWidget(); + } + }(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } else if (snapshot.hasError) { + DialogUtil.error(context, snapshot.error.toString()); + return const WelcomePageWidget(); + } else { + return snapshot.data!; + } + }, + ); + }, ), FFRoute( name: 'forgotPassword',