wip: add try-catch

This commit is contained in:
J. A. Messias 2024-11-18 17:22:27 -03:00
parent 40e2e75a09
commit 4bdce5e2ba
1 changed files with 37 additions and 26 deletions

View File

@ -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<void> _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<void> _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() {