Fixed no such method error

This commit is contained in:
Marc Rejohn Castillano 2026-02-28 21:51:57 +08:00
parent d3239d8c76
commit 1ce38618f6

View File

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