- 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>
86 lines
3.0 KiB
Dart
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(),
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
],
|
|
);
|