Fixed no such method error
This commit is contained in:
parent
d3239d8c76
commit
1ce38618f6
|
|
@ -33,20 +33,21 @@ final appRouterProvider = Provider<GoRouter>((ref) {
|
|||
refreshListenable: notifier,
|
||||
redirect: (context, state) {
|
||||
final authState = ref.read(authStateChangesProvider);
|
||||
final session = authState.when(
|
||||
data: (state) => state.session,
|
||||
loading: () => ref.read(sessionProvider),
|
||||
error: (error, _) => ref.read(sessionProvider),
|
||||
);
|
||||
var session;
|
||||
if (authState is AsyncData) {
|
||||
final state = authState.value;
|
||||
session = state?.session;
|
||||
} else {
|
||||
session = ref.read(sessionProvider);
|
||||
}
|
||||
final isAuthRoute =
|
||||
state.fullPath == '/login' || state.fullPath == '/signup';
|
||||
final isSignedIn = session != null;
|
||||
final profileAsync = ref.read(currentProfileProvider);
|
||||
final isAdminRoute = state.matchedLocation.startsWith('/settings');
|
||||
final isAdmin = profileAsync.maybeWhen(
|
||||
data: (profile) => profile?.role == 'admin',
|
||||
orElse: () => false,
|
||||
);
|
||||
final isAdmin = profileAsync is AsyncData
|
||||
? (profileAsync.value)?.role == 'admin'
|
||||
: false;
|
||||
|
||||
if (!isSignedIn && !isAuthRoute) {
|
||||
return '/login';
|
||||
|
|
@ -161,17 +162,14 @@ class RouterNotifier extends ChangeNotifier {
|
|||
RouterNotifier(this.ref) {
|
||||
_authSub = ref.listen(authStateChangesProvider, (previous, next) {
|
||||
// Enforce auth-level ban when a session becomes available.
|
||||
next.when(
|
||||
data: (authState) {
|
||||
final session = authState.session;
|
||||
if (next is AsyncData) {
|
||||
final authState = next.value;
|
||||
final session = authState?.session;
|
||||
if (session != null) {
|
||||
// Fire-and-forget enforcement (best-effort client-side sign-out)
|
||||
enforceLockForCurrentUser(ref.read(supabaseClientProvider));
|
||||
}
|
||||
},
|
||||
loading: () {},
|
||||
error: (error, _) {},
|
||||
);
|
||||
}
|
||||
notifyListeners();
|
||||
});
|
||||
_profileSub = ref.listen(currentProfileProvider, (previous, next) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user