uaestats_fe/public/.well-known/deeplink.txt
2026-05-16 11:31:32 +05:30

50 lines
1.2 KiB
Plaintext
Executable File

Future<bool> _checkUserLoginStatus() async {
try {
await Future.delayed(const Duration(seconds: 1));
log('Checking login status...');
final session = await _authRepo.fetchLocallyStored();
return session != null;
} catch (e) {
log('Error checking login status: $e');
return false;
}
}
Future<void> _redirectToLogin(String redirectPath) async {
if (mounted) {
GoRouter.of(context).push('/login?redirect=$redirectPath');
}
}
Future<void> _handleDeepLink(BuildContext context) async {
final GoRouterState state = GoRouterState.of(context);
final String? deepLink = state.uri.toString().isNotEmpty && state.uri.path != '/' ? state.uri.toString() : null;
if (deepLink == null) {
log('No deep link detected.');
return;
}
log('Received deep link: $deepLink');
final String path = Uri.parse(deepLink).path;
final bool isLoggedIn = await _checkUserLoginStatus();
if (!isLoggedIn) {
log('User not logged in. Redirecting to login.');
await _redirectToLogin(path);
return;
}
// If logged in, proceed to the shared page
if (mounted) {
log('User is logged in. Navigating to $path');
GoRouter.of(context).go(path);
}
}
@override
Widget build(BuildContext context) {
return widget.child;
}
}