readd: home drawer

Fixes #900
This commit is contained in:
lollipopkit🏳️‍⚧️
2025-09-05 00:12:41 +08:00
parent 1bac986fe0
commit eadd343205
27 changed files with 88 additions and 26 deletions

View File

@@ -68,7 +68,7 @@ class _HomeTabsConfigPageState extends ConsumerState<HomeTabsConfigPage> {
}
Widget _buildTabItem(AppTab tab, int index, bool isSelected) {
final canRemove = _selectedTabs.length > 1;
final canRemove = _selectedTabs.length > 1 && tab != AppTab.server;
final child = ListTile(
leading: tab.navDestination.icon,
title: Text(tab.navDestination.label),
@@ -77,7 +77,7 @@ class _HomeTabsConfigPageState extends ConsumerState<HomeTabsConfigPage> {
icon: const Icon(Icons.delete),
onPressed: canRemove ? () => _removeTab(tab) : null,
color: canRemove ? null : Theme.of(context).disabledColor,
tooltip: canRemove ? libL10n.delete : l10n.atLeastOneTab,
tooltip: canRemove ? libL10n.delete : (tab == AppTab.server ? l10n.serverTabRequired : l10n.atLeastOneTab),
)
: IconButton(icon: const Icon(Icons.add), onPressed: () => _addTab(tab)),
onTap: isSelected && canRemove ? () => _removeTab(tab) : null,
@@ -111,6 +111,10 @@ class _HomeTabsConfigPageState extends ConsumerState<HomeTabsConfigPage> {
context.showSnackBar(l10n.atLeastOneTab);
return;
}
if (tab == AppTab.server) {
context.showSnackBar(l10n.serverTabRequired);
return;
}
setState(() {
_selectedTabs.remove(tab);
});