chore: release v1.4.0
Build and Push / release (push) Successful in 3s
Build and Push / build (push) Successful in 3m7s

- Decentralized Room Registry pattern
- Each room registers itself with central registry
- Dynamic navigation tabs and settings dropdown
- New Media Room and Parlor feature folders
- Permission-based room filtering support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Jeroen Schweitzer
2026-01-05 15:46:44 +01:00
co-authored by Claude Opus 4.5
parent 40ba6a869d
commit c3f6d27a52
15 changed files with 581 additions and 134 deletions
+38
View File
@@ -0,0 +1,38 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:tatlock_ui/features/front_hall/presentation/pages/front_hall_page.dart';
import 'package:tatlock_ui/routing/app_router.dart';
import 'package:tatlock_ui/routing/room_registry.dart';
/// Route paths for Front Hall.
abstract class FrontHallRoutes {
static const base = '/front-hall';
}
/// Front Hall room definition.
final frontHallRoom = RoomDefinition(
id: 'front-hall',
label: 'Front Hall',
icon: Icons.door_front_door_outlined,
selectedIcon: Icons.door_front_door,
defaultRoute: FrontHallRoutes.base,
routes: frontHallRoutes,
// No permissions required - accessible to all authenticated users
);
/// Register Front Hall with the room registry.
void registerFrontHall() {
roomRegistry.register(frontHallRoom);
}
/// Front Hall routes for go_router.
List<RouteBase> frontHallRoutes() {
return [
GoRoute(
path: FrontHallRoutes.base,
name: 'frontHall',
pageBuilder: (context, state) =>
noTransitionPage(context, state, const FrontHallPage()),
),
];
}