Files
HouseHoldKeaper/lib/core/router/router.dart
Jean-Luc Makiola 32e61e4bec feat(02-02): create room providers, form screen, icon picker, and router routes
- Add Riverpod providers (roomWithStatsList, RoomActions) connecting to RoomsDao
- Create RoomFormScreen with name field, icon picker preview, create/edit modes
- Create IconPickerSheet bottom sheet with curated Material Icons grid
- Add nested GoRouter routes: /rooms/new, /rooms/:roomId, /rooms/:roomId/edit
- Add placeholder TaskListScreen and TaskFormScreen for Plan 03 routes
- Add 11 new German localization keys for room management UI
- Add flutter_reorderable_grid_view dependency

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 22:00:57 +01:00

86 lines
3.0 KiB
Dart

import 'package:go_router/go_router.dart';
import 'package:household_keeper/features/home/presentation/home_screen.dart';
import 'package:household_keeper/features/rooms/presentation/room_form_screen.dart';
import 'package:household_keeper/features/rooms/presentation/rooms_screen.dart';
import 'package:household_keeper/features/settings/presentation/settings_screen.dart';
import 'package:household_keeper/features/tasks/presentation/task_form_screen.dart';
import 'package:household_keeper/features/tasks/presentation/task_list_screen.dart';
import 'package:household_keeper/shell/app_shell.dart';
final router = GoRouter(
initialLocation: '/',
routes: [
StatefulShellRoute.indexedStack(
builder: (context, state, navigationShell) =>
AppShell(navigationShell: navigationShell),
branches: [
StatefulShellBranch(
routes: [
GoRoute(
path: '/',
builder: (context, state) => const HomeScreen(),
),
],
),
StatefulShellBranch(
routes: [
GoRoute(
path: '/rooms',
builder: (context, state) => const RoomsScreen(),
routes: [
GoRoute(
path: 'new',
builder: (context, state) => const RoomFormScreen(),
),
GoRoute(
path: ':roomId',
builder: (context, state) {
final roomId =
int.parse(state.pathParameters['roomId']!);
return TaskListScreen(roomId: roomId);
},
routes: [
GoRoute(
path: 'edit',
builder: (context, state) {
final roomId =
int.parse(state.pathParameters['roomId']!);
return RoomFormScreen(roomId: roomId);
},
),
GoRoute(
path: 'tasks/new',
builder: (context, state) {
final roomId =
int.parse(state.pathParameters['roomId']!);
return TaskFormScreen(roomId: roomId);
},
),
GoRoute(
path: 'tasks/:taskId',
builder: (context, state) {
final taskId =
int.parse(state.pathParameters['taskId']!);
return TaskFormScreen(taskId: taskId);
},
),
],
),
],
),
],
),
StatefulShellBranch(
routes: [
GoRoute(
path: '/settings',
builder: (context, state) => const SettingsScreen(),
),
],
),
],
),
],
);