diff --git a/lib/shared/services/deeplink/deep_link_service.dart b/lib/shared/services/deeplink/deep_link_service.dart index bea26799..392fa519 100644 --- a/lib/shared/services/deeplink/deep_link_service.dart +++ b/lib/shared/services/deeplink/deep_link_service.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:developer'; import 'package:app_links/app_links.dart'; import 'package:flutter/material.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; @@ -33,39 +34,49 @@ class DeepLinkService { } Future _handleDeepLink(Uri uri) async { - print('Handling deep link: $uri'); - if (StorageHelper().isRecovered) return; + try { + print('Handling deep link: $uri'); + if (StorageHelper().isRecovered) return; - StorageHelper().isRecovered = true; - final email = uri.queryParameters['email'] ?? ''; - final token = uri.queryParameters['token'] ?? ''; - print('email: $email, token: $token'); + StorageHelper().isRecovered = true; + final email = uri.queryParameters['email'] ?? ''; + final token = uri.queryParameters['token'] ?? ''; + print('email: $email, token: $token'); - if (email.isNotEmpty && token.isNotEmpty) { - await _showForgotPasswordScreen(email, token); + if (email.isNotEmpty && token.isNotEmpty) { + await _showForgotPasswordScreen(email, token); + } + } catch (e, s) { + print('Error handling deep link: $e'); + log('Error handling', error: e, stackTrace: s); } } Future _showForgotPasswordScreen(String email, String token) async { - WidgetsBinding.instance.addPostFrameCallback((_) async { - final theme = FlutterFlowTheme.of(StorageHelper().context!); - final screen = ForgotPasswordScreen(email: email, token: token); - await showModalBottomSheet( - context: StorageHelper().context!, - builder: (context) => Padding( - padding: MediaQuery.viewInsetsOf(context), - child: screen, - ), - isScrollControlled: true, - backgroundColor: theme.primaryBackground, - showDragHandle: true, - useSafeArea: true, - enableDrag: true, - ).whenComplete(() { - StorageHelper().isRecovered = false; - print('showModalBottomSheet completed'); + try { + WidgetsBinding.instance.addPostFrameCallback((_) async { + final theme = FlutterFlowTheme.of(StorageHelper().context!); + final screen = ForgotPasswordScreen(email: email, token: token); + await showModalBottomSheet( + context: StorageHelper().context!, + builder: (context) => Padding( + padding: MediaQuery.viewInsetsOf(context), + child: screen, + ), + isScrollControlled: true, + backgroundColor: theme.primaryBackground, + showDragHandle: true, + useSafeArea: true, + enableDrag: true, + ).whenComplete(() { + StorageHelper().isRecovered = false; + print('showModalBottomSheet completed'); + }); }); - }); + } catch (e, s) { + print('Error showing forgot password screen: $e'); + log('Error handling', error: e, stackTrace: s); + } } void dispose() {