fix: Fix language and theme not updating in sliver components

This commit is contained in:
Anton Stubenbord
2023-03-04 20:42:11 +01:00
parent e2cdee6e6a
commit a3a1941206
5 changed files with 27 additions and 27 deletions

View File

@@ -22,6 +22,6 @@ class CustomizableSliverPersistentHeaderDelegate
@override @override
bool shouldRebuild(CustomizableSliverPersistentHeaderDelegate oldDelegate) { bool shouldRebuild(CustomizableSliverPersistentHeaderDelegate oldDelegate) {
return false; return true;
} }
} }

View File

@@ -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,
);
}
}

View File

@@ -5,6 +5,7 @@ import 'package:open_filex/open_filex.dart';
import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/bloc/connectivity_cubit.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/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/extensions/flutter_extensions.dart';
import 'package:paperless_mobile/features/document_details/cubit/document_details_cubit.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'; import 'package:paperless_mobile/features/document_details/view/widgets/document_content_widget.dart';
@@ -89,8 +90,6 @@ class _DocumentDetailsPageState extends State<DocumentDetailsPage> {
), ),
), ),
bottom: ColoredTabBar( bottom: ColoredTabBar(
backgroundColor:
Theme.of(context).colorScheme.primaryContainer,
tabBar: TabBar( tabBar: TabBar(
isScrollable: true, isScrollable: true,
tabs: [ tabs: [
@@ -358,22 +357,3 @@ class _DocumentDetailsPageState extends State<DocumentDetailsPage> {
); );
} }
} }
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,
);
}

View File

@@ -4,6 +4,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/core/bloc/connectivity_cubit.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/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/extensions/flutter_extensions.dart';
import 'package:paperless_mobile/features/app_drawer/view/app_drawer.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_details/view/pages/document_details_page.dart';
@@ -188,9 +189,6 @@ class _DocumentsPageState extends State<DocumentsPage>
minExtent: kTextTabBarHeight, minExtent: kTextTabBarHeight,
maxExtent: kTextTabBarHeight, maxExtent: kTextTabBarHeight,
child: ColoredTabBar( child: ColoredTabBar(
backgroundColor: Theme.of(context)
.colorScheme
.background,
tabBar: TabBar( tabBar: TabBar(
controller: _tabController, controller: _tabController,
tabs: [ tabs: [

View File

@@ -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/bloc/connectivity_cubit.dart';
import 'package:paperless_mobile/core/delegate/customizable_sliver_persistent_header_delegate.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/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/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_details/view/pages/document_details_page.dart';
import 'package:paperless_mobile/features/document_search/view/sliver_search_bar.dart'; import 'package:paperless_mobile/features/document_search/view/sliver_search_bar.dart';
@@ -75,8 +76,6 @@ class _LabelsPageState extends State<LabelsPage>
pinned: true, pinned: true,
delegate: CustomizableSliverPersistentHeaderDelegate( delegate: CustomizableSliverPersistentHeaderDelegate(
child: ColoredTabBar( child: ColoredTabBar(
backgroundColor:
Theme.of(context).colorScheme.background,
tabBar: TabBar( tabBar: TabBar(
controller: _tabController, controller: _tabController,
tabs: [ tabs: [