From 8755d639ca2bd32aa09b70f176fb8b6be41fbd4d Mon Sep 17 00:00:00 2001 From: Chen Asraf Date: Sat, 31 Aug 2024 01:02:08 +0300 Subject: [PATCH] fix: web providers --- lib/app/data/services/auth_provider.dart | 5 +++-- lib/app/data/services/user_provider.dart | 3 ++- lib/core/platform_helper.dart | 4 ++-- lib/main.dart | 2 +- web/index.html | 8 ++++++++ 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/app/data/services/auth_provider.dart b/lib/app/data/services/auth_provider.dart index 4fe408da..ca2d2c27 100644 --- a/lib/app/data/services/auth_provider.dart +++ b/lib/app/data/services/auth_provider.dart @@ -155,9 +155,10 @@ class AuthProvider extends ChangeNotifier debugPrint('fb user changed: $user'); _fbUser = user; - final context = appGlobalKey.currentContext!; - final userProvider = Provider.of(context, listen: false); + final userProvider = UserProvider.instance; + if (user != null) { + final context = appGlobalKey.currentContext!; final loadingProvider = Provider.of( context, listen: false, diff --git a/lib/app/data/services/user_provider.dart b/lib/app/data/services/user_provider.dart index 64d5fc16..764443ed 100644 --- a/lib/app/data/services/user_provider.dart +++ b/lib/app/data/services/user_provider.dart @@ -25,6 +25,7 @@ import '../../../core/utils/secrets_base.dart'; class UserProvider extends ChangeNotifier with RepositoryProviderMixin { var _current = User.guest(); + static final UserProvider instance = UserProvider(); User get current => _current; StreamSubscription? _userDataSub; @@ -249,4 +250,4 @@ mixin UserProviderMixin { UserProvider get userProvider => UserProvider.of(appGlobalKey.currentContext!); User get user => userProvider.current; -} +} \ No newline at end of file diff --git a/lib/core/platform_helper.dart b/lib/core/platform_helper.dart index 1baea72e..dad36b22 100644 --- a/lib/core/platform_helper.dart +++ b/lib/core/platform_helper.dart @@ -35,8 +35,8 @@ class PlatformHelper { static final isMacOS = !kIsWeb && Platform.isMacOS; static final isWindows = !kIsWeb && Platform.isWindows; static final isLinux = !kIsWeb && Platform.isLinux; - static final isDesktop = Platform.isMacOS || Platform.isWindows || Platform.isLinux; - static final isMobile = !isDesktop; + static final isDesktop = !isMobile && (Platform.isMacOS || Platform.isWindows || Platform.isLinux); + static const isMobile = kIsWeb; static final canUseAppleSignIn = isApple; static final canUseGoogleSignIn = isAndroid; diff --git a/lib/main.dart b/lib/main.dart index 0243f899..1ddf38df 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -45,7 +45,7 @@ void main() async { final _loadingProvider = LoadingProvider(); final _authProvider = AuthProvider(); final _characterProvider = CharacterProvider(); -final _userProvider = UserProvider(); +final _userProvider = UserProvider.instance; final _repositoryProvider = RepositoryProvider(); final _libraryProvider = LibraryProvider(); final _intlService = IntlService.instance; diff --git a/web/index.html b/web/index.html index 09977cfd..d00ec8cf 100644 --- a/web/index.html +++ b/web/index.html @@ -154,5 +154,13 @@ window.location.href = '/' } + \ No newline at end of file