From 30e6d5021012d7bfa3be41963129a4ed4a3e13cb Mon Sep 17 00:00:00 2001 From: NBA2K1 <78034913+NBA2K1@users.noreply.github.com> Date: Mon, 29 Dec 2025 01:34:05 +0100 Subject: [PATCH] Make TabBar and TabBarView cleaner Use the _visibleTabTypes list instead of the repeated if-statements. --- lib/modules/updates/updates_screen.dart | 77 +++++++++---------------- 1 file changed, 28 insertions(+), 49 deletions(-) diff --git a/lib/modules/updates/updates_screen.dart b/lib/modules/updates/updates_screen.dart index 0cea20e4..1c3315dc 100644 --- a/lib/modules/updates/updates_screen.dart +++ b/lib/modules/updates/updates_screen.dart @@ -89,6 +89,17 @@ class _UpdatesScreenState extends ConsumerState @override Widget build(BuildContext context) { final l10n = l10nLocalizations(context)!; + String localizedItemType(ItemType type) { + switch (type) { + case ItemType.manga: + return l10n.manga; + case ItemType.anime: + return l10n.anime; + case ItemType.novel: + return l10n.novel; + } + } + return Scaffold( appBar: AppBar( elevation: 0, @@ -182,61 +193,29 @@ class _UpdatesScreenState extends ConsumerState bottom: TabBar( indicatorSize: TabBarIndicatorSize.tab, controller: _tabBarController, - tabs: [ - if (!hideItems.contains("/MangaLibrary")) - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Tab(text: l10n.manga), - const SizedBox(width: 8), - _updateNumbers(ref, ItemType.manga), - ], - ), - if (!hideItems.contains("/AnimeLibrary")) - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Tab(text: l10n.anime), - const SizedBox(width: 8), - _updateNumbers(ref, ItemType.anime), - ], - ), - if (!hideItems.contains("/NovelLibrary")) - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Tab(text: l10n.novel), - const SizedBox(width: 8), - _updateNumbers(ref, ItemType.novel), - ], - ), - ], + tabs: _visibleTabTypes.map((type) { + return Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Tab(text: localizedItemType(type)), + const SizedBox(width: 8), + _updateNumbers(ref, type), + ], + ); + }).toList(), ), ), body: Padding( padding: const EdgeInsets.only(top: 10), child: TabBarView( controller: _tabBarController, - children: [ - if (!hideItems.contains("/MangaLibrary")) - UpdateTab( - itemType: ItemType.manga, - query: _textEditingController.text, - isLoading: _isLoading, - ), - if (!hideItems.contains("/AnimeLibrary")) - UpdateTab( - itemType: ItemType.anime, - query: _textEditingController.text, - isLoading: _isLoading, - ), - if (!hideItems.contains("/NovelLibrary")) - UpdateTab( - itemType: ItemType.novel, - query: _textEditingController.text, - isLoading: _isLoading, - ), - ], + children: _visibleTabTypes.map((type) { + return UpdateTab( + itemType: type, + query: _textEditingController.text, + isLoading: _isLoading, + ); + }).toList(), ), ), );