From a3a194120648ddb4be52e72279009edf4c6ff9ce Mon Sep 17 00:00:00 2001 From: Anton Stubenbord Date: Sat, 4 Mar 2023 20:42:11 +0100 Subject: [PATCH] fix: Fix language and theme not updating in sliver components --- ...ble_sliver_persistent_header_delegate.dart | 2 +- .../material/search/colored_tab_bar.dart | 23 +++++++++++++++++++ .../view/pages/document_details_page.dart | 22 +----------------- .../documents/view/pages/documents_page.dart | 4 +--- .../labels/view/pages/labels_page.dart | 3 +-- 5 files changed, 27 insertions(+), 27 deletions(-) create mode 100644 lib/core/widgets/material/search/colored_tab_bar.dart diff --git a/lib/core/delegate/customizable_sliver_persistent_header_delegate.dart b/lib/core/delegate/customizable_sliver_persistent_header_delegate.dart index 07677fd..e607d1c 100644 --- a/lib/core/delegate/customizable_sliver_persistent_header_delegate.dart +++ b/lib/core/delegate/customizable_sliver_persistent_header_delegate.dart @@ -22,6 +22,6 @@ class CustomizableSliverPersistentHeaderDelegate @override bool shouldRebuild(CustomizableSliverPersistentHeaderDelegate oldDelegate) { - return false; + return true; } } diff --git a/lib/core/widgets/material/search/colored_tab_bar.dart b/lib/core/widgets/material/search/colored_tab_bar.dart new file mode 100644 index 0000000..547d308 --- /dev/null +++ b/lib/core/widgets/material/search/colored_tab_bar.dart @@ -0,0 +1,23 @@ +import 'package:flutter/material.dart'; + +class ColoredTabBar extends StatelessWidget implements PreferredSizeWidget { + const ColoredTabBar({ + super.key, + this.color, + required this.tabBar, + }); + + final TabBar tabBar; + final Color? color; + + @override + Size get preferredSize => tabBar.preferredSize; + + @override + Widget build(BuildContext context) { + return ColoredBox( + color: color ?? Theme.of(context).colorScheme.background, + child: tabBar, + ); + } +} diff --git a/lib/features/document_details/view/pages/document_details_page.dart b/lib/features/document_details/view/pages/document_details_page.dart index 59539ed..0457520 100644 --- a/lib/features/document_details/view/pages/document_details_page.dart +++ b/lib/features/document_details/view/pages/document_details_page.dart @@ -5,6 +5,7 @@ import 'package:open_filex/open_filex.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/bloc/connectivity_cubit.dart'; import 'package:paperless_mobile/core/translation/error_code_localization_mapper.dart'; +import 'package:paperless_mobile/core/widgets/material/search/colored_tab_bar.dart'; import 'package:paperless_mobile/extensions/flutter_extensions.dart'; import 'package:paperless_mobile/features/document_details/cubit/document_details_cubit.dart'; import 'package:paperless_mobile/features/document_details/view/widgets/document_content_widget.dart'; @@ -89,8 +90,6 @@ class _DocumentDetailsPageState extends State { ), ), bottom: ColoredTabBar( - backgroundColor: - Theme.of(context).colorScheme.primaryContainer, tabBar: TabBar( isScrollable: true, tabs: [ @@ -358,22 +357,3 @@ class _DocumentDetailsPageState extends State { ); } } - -class ColoredTabBar extends Container implements PreferredSizeWidget { - ColoredTabBar({ - super.key, - required this.backgroundColor, - required this.tabBar, - }); - - final TabBar tabBar; - final Color backgroundColor; - @override - Size get preferredSize => tabBar.preferredSize; - - @override - Widget build(BuildContext context) => Container( - color: backgroundColor, - child: tabBar, - ); -} diff --git a/lib/features/documents/view/pages/documents_page.dart b/lib/features/documents/view/pages/documents_page.dart index ca8bed7..3a455fa 100644 --- a/lib/features/documents/view/pages/documents_page.dart +++ b/lib/features/documents/view/pages/documents_page.dart @@ -4,6 +4,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/bloc/connectivity_cubit.dart'; import 'package:paperless_mobile/core/delegate/customizable_sliver_persistent_header_delegate.dart'; +import 'package:paperless_mobile/core/widgets/material/search/colored_tab_bar.dart'; import 'package:paperless_mobile/extensions/flutter_extensions.dart'; import 'package:paperless_mobile/features/app_drawer/view/app_drawer.dart'; import 'package:paperless_mobile/features/document_details/view/pages/document_details_page.dart'; @@ -188,9 +189,6 @@ class _DocumentsPageState extends State minExtent: kTextTabBarHeight, maxExtent: kTextTabBarHeight, child: ColoredTabBar( - backgroundColor: Theme.of(context) - .colorScheme - .background, tabBar: TabBar( controller: _tabController, tabs: [ diff --git a/lib/features/labels/view/pages/labels_page.dart b/lib/features/labels/view/pages/labels_page.dart index ccab24b..acdd44d 100644 --- a/lib/features/labels/view/pages/labels_page.dart +++ b/lib/features/labels/view/pages/labels_page.dart @@ -4,6 +4,7 @@ import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/bloc/connectivity_cubit.dart'; import 'package:paperless_mobile/core/delegate/customizable_sliver_persistent_header_delegate.dart'; import 'package:paperless_mobile/core/repository/label_repository.dart'; +import 'package:paperless_mobile/core/widgets/material/search/colored_tab_bar.dart'; import 'package:paperless_mobile/features/app_drawer/view/app_drawer.dart'; import 'package:paperless_mobile/features/document_details/view/pages/document_details_page.dart'; import 'package:paperless_mobile/features/document_search/view/sliver_search_bar.dart'; @@ -75,8 +76,6 @@ class _LabelsPageState extends State pinned: true, delegate: CustomizableSliverPersistentHeaderDelegate( child: ColoredTabBar( - backgroundColor: - Theme.of(context).colorScheme.background, tabBar: TabBar( controller: _tabController, tabs: [