mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-07 22:07:49 -06:00
fix: Fix language and theme not updating in sliver components
This commit is contained in:
@@ -22,6 +22,6 @@ class CustomizableSliverPersistentHeaderDelegate
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
bool shouldRebuild(CustomizableSliverPersistentHeaderDelegate oldDelegate) {
|
bool shouldRebuild(CustomizableSliverPersistentHeaderDelegate oldDelegate) {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
23
lib/core/widgets/material/search/colored_tab_bar.dart
Normal file
23
lib/core/widgets/material/search/colored_tab_bar.dart
Normal 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,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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: [
|
||||||
|
|||||||
@@ -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: [
|
||||||
|
|||||||
Reference in New Issue
Block a user