23 lines
653 B
Dart
23 lines
653 B
Dart
|
|
import "package:auto_route/auto_route.dart";
|
||
|
|
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||
|
|
|
||
|
|
import "package:smol_mail/data/providers/providers.dart";
|
||
|
|
import "package:smol_mail/presentation/routes/app_router.gr.dart";
|
||
|
|
|
||
|
|
/// Everything past onboarding needs an identity; the account can still be
|
||
|
|
/// registered from settings.
|
||
|
|
class IdentityGuard extends AutoRouteGuard {
|
||
|
|
final WidgetRef ref;
|
||
|
|
|
||
|
|
IdentityGuard(this.ref);
|
||
|
|
|
||
|
|
@override
|
||
|
|
void onNavigation(NavigationResolver resolver, StackRouter router) {
|
||
|
|
if (ref.read(identityProvider) == null) {
|
||
|
|
router.replace(OnboardingRoute());
|
||
|
|
} else {
|
||
|
|
resolver.next(true);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|