From fbd1d762d3f58d20459b382b3fab8e1b036e94c7 Mon Sep 17 00:00:00 2001 From: PartyDonut Date: Mon, 1 Sep 2025 20:51:26 +0200 Subject: [PATCH] fix: Titlebar overlay fullScreenRoutes --- lib/models/item_base_model.dart | 1 + lib/routes/auto_router.dart | 4 ++++ lib/screens/shared/default_title_bar.dart | 1 + .../components/side_navigation_bar.dart | 7 ++----- lib/widgets/navigation_scaffold/navigation_scaffold.dart | 5 ++++- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/models/item_base_model.dart b/lib/models/item_base_model.dart index 06cc0a2..7c3b9fc 100644 --- a/lib/models/item_base_model.dart +++ b/lib/models/item_base_model.dart @@ -335,6 +335,7 @@ enum FladderItemType { FladderItemType.video => 0.8, FladderItemType.photo => 0.8, FladderItemType.photoAlbum => 0.8, + FladderItemType.folder => 0.8, FladderItemType.musicAlbum => 0.8, FladderItemType.baseType => 0.8, _ => 0.55, diff --git a/lib/routes/auto_router.dart b/lib/routes/auto_router.dart index 86ca13c..f975458 100644 --- a/lib/routes/auto_router.dart +++ b/lib/routes/auto_router.dart @@ -7,6 +7,10 @@ import 'package:fladder/screens/login/lock_screen.dart'; const settingsPageRoute = "settings"; +const fullScreenRoutes = { + PhotoViewerRoute.name, +}; + @AutoRouterConfig(replaceInRouteName: 'Screen|Page,Route') class AutoRouter extends RootStackRouter { AutoRouter({ diff --git a/lib/screens/shared/default_title_bar.dart b/lib/screens/shared/default_title_bar.dart index aefdca7..7452932 100644 --- a/lib/screens/shared/default_title_bar.dart +++ b/lib/screens/shared/default_title_bar.dart @@ -43,6 +43,7 @@ class _DefaultTitleBarState extends ConsumerState with WindowLi final iconColor = theme.colorScheme.onSurface.withValues(alpha: 0.65); final isOffline = ref.watch(connectivityStatusProvider.select((value) => value == ConnectionState.offline)); final surfaceColor = theme.colorScheme.surface; + return MouseRegion( onEnter: (event) => setState(() => hovering = true), onExit: (event) => setState(() => hovering = false), diff --git a/lib/widgets/navigation_scaffold/components/side_navigation_bar.dart b/lib/widgets/navigation_scaffold/components/side_navigation_bar.dart index 6a86fc1..b277c70 100644 --- a/lib/widgets/navigation_scaffold/components/side_navigation_bar.dart +++ b/lib/widgets/navigation_scaffold/components/side_navigation_bar.dart @@ -10,6 +10,7 @@ import 'package:fladder/models/collection_types.dart'; import 'package:fladder/models/library_filter_model.dart'; import 'package:fladder/providers/settings/client_settings_provider.dart'; import 'package:fladder/providers/views_provider.dart'; +import 'package:fladder/routes/auto_router.dart'; import 'package:fladder/routes/auto_router.gr.dart'; import 'package:fladder/screens/metadata/refresh_metadata.dart'; import 'package:fladder/screens/shared/animated_fade_size.dart'; @@ -25,10 +26,6 @@ import 'package:fladder/widgets/shared/custom_tooltip.dart'; import 'package:fladder/widgets/shared/item_actions.dart'; import 'package:fladder/widgets/shared/modal_bottom_sheet.dart'; -const _fullScreenRoutes = { - PhotoViewerRoute.name, -}; - class SideNavigationBar extends ConsumerStatefulWidget { final int currentIndex; final List destinations; @@ -65,7 +62,7 @@ class _SideNavigationBarState extends ConsumerState { final shouldExpand = fullyExpanded; final isDesktop = AdaptiveLayout.of(context).isDesktop; - final fullScreenChildRoute = _fullScreenRoutes.contains(context.router.current.name); + final fullScreenChildRoute = fullScreenRoutes.contains(context.router.current.name); return Stack( children: [ diff --git a/lib/widgets/navigation_scaffold/navigation_scaffold.dart b/lib/widgets/navigation_scaffold/navigation_scaffold.dart index 12c89df..658e010 100644 --- a/lib/widgets/navigation_scaffold/navigation_scaffold.dart +++ b/lib/widgets/navigation_scaffold/navigation_scaffold.dart @@ -1,6 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart' hide ConnectionState; +import 'package:auto_route/auto_route.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:fladder/models/media_playback_model.dart'; @@ -81,6 +82,8 @@ class _NavigationScaffoldState extends ConsumerState { final currentTab = HomeTabs.values.elementAtOrNull(currentIndex.clamp(0, HomeTabs.values.length - 1)) ?? HomeTabs.dashboard; + final fullScreenChildRoute = fullScreenRoutes.contains(context.router.current.name); + return PopScope( canPop: currentIndex == 0, onPopInvokedWithResult: (didPop, result) { @@ -107,7 +110,7 @@ class _NavigationScaffoldState extends ConsumerState { child: Builder(builder: (context) { return Scaffold( key: _key, - appBar: const FladderAppBar(), + appBar: fullScreenChildRoute ? null : const FladderAppBar(), extendBodyBehindAppBar: true, resizeToAvoidBottomInset: false, extendBody: true,