diff --git a/lib/screens/main_scaffold.dart b/lib/screens/main_scaffold.dart index 3742284..5386a61 100644 --- a/lib/screens/main_scaffold.dart +++ b/lib/screens/main_scaffold.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:models/models.dart'; @@ -7,7 +8,7 @@ import '../widgets/common/profile_avatar.dart'; import '../theme.dart'; /// Main scaffold with bottom navigation that adapts to screen size -class MainScaffold extends StatelessWidget { +class MainScaffold extends HookWidget { const MainScaffold({super.key, required this.navigationShell}); final StatefulNavigationShell navigationShell; @@ -34,6 +35,9 @@ class MainScaffold extends StatelessWidget { Widget build(BuildContext context) { final router = GoRouter.of(context); + // Listen to router changes to keep canPop in sync with navigation state + useListenable(router.routerDelegate); + return PopScope( canPop: !router.canPop(), // Allow app to close only when router can't pop onPopInvokedWithResult: (didPop, result) {