Refactor code structure for improved readability and maintainability
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import 'package:go_router/go_router.dart';
|
||||
import '../ui/app_shell.dart';
|
||||
import '../ui/async_state_views.dart';
|
||||
import '../../features/auth/data/auth_providers.dart';
|
||||
import '../../core/auth/jwt_decoder.dart';
|
||||
import '../../features/auth/presentation/login_screen.dart';
|
||||
import '../../features/profile/presentation/profile_screen.dart';
|
||||
import '../../features/recipes/presentation/create_recipe_screen.dart';
|
||||
@@ -20,6 +21,7 @@ import '../../features/inventory/presentation/consumption_history_screen.dart';
|
||||
import '../../features/meal_plan/presentation/meal_plan_screen.dart';
|
||||
import '../../features/pantry/presentation/pantry_screen.dart';
|
||||
import '../../features/import/presentation/import_screen.dart';
|
||||
import '../../features/admin/presentation/admin_screen.dart';
|
||||
|
||||
final appRouterProvider = Provider<GoRouter>((ref) {
|
||||
final authState = ref.watch(authStateProvider);
|
||||
@@ -28,7 +30,7 @@ final appRouterProvider = Provider<GoRouter>((ref) {
|
||||
initialLocation: '/',
|
||||
redirect: (context, state) {
|
||||
final isLoading = authState.isLoading;
|
||||
final token = authState.valueOrNull;
|
||||
final token = authState.maybeWhen(data: (t) => t, orElse: () => null);
|
||||
final isLoggedIn = token != null && token.isNotEmpty;
|
||||
final location = state.matchedLocation;
|
||||
final isSplash = location == '/';
|
||||
@@ -194,6 +196,14 @@ final appRouterProvider = Provider<GoRouter>((ref) {
|
||||
path: '/profile',
|
||||
builder: (context, state) => const ProfileScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: '/admin',
|
||||
redirect: (context, state) {
|
||||
final token = ref.read(authStateProvider).maybeWhen(data: (t) => t, orElse: () => null);
|
||||
return jwtIsAdmin(token) ? null : '/recipes';
|
||||
},
|
||||
builder: (context, state) => const AdminScreen(),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user