From 3a1bacb7465351742ab4bcef1a854891db99e535 Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Tue, 10 Mar 2026 03:41:57 +0100 Subject: [PATCH] small ui changes --- .../bangs/domain/providers/search.dart | 3 ++ .../widgets/browser_menu_sheet.dart | 49 ++++++++++--------- .../presentation/widgets/tab_menu.dart | 4 +- .../presentation/widgets/find_in_page.dart | 2 +- .../entities/default_selection_actions.dart | 2 +- 5 files changed, 34 insertions(+), 26 deletions(-) diff --git a/app/lib/features/bangs/domain/providers/search.dart b/app/lib/features/bangs/domain/providers/search.dart index 37e4ac6b..486ae7a1 100644 --- a/app/lib/features/bangs/domain/providers/search.dart +++ b/app/lib/features/bangs/domain/providers/search.dart @@ -63,6 +63,9 @@ class BangSearch extends _$BangSearch { Stream> build() { _streamController = StreamController(); + // Emit initial empty list so UI doesn't show loading state + _streamController.add([]); + ref.onDispose(() async { await _streamController.close(); }); diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/browser_menu_sheet.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/browser_menu_sheet.dart index 1f434bb3..39093fde 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/browser_menu_sheet.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/browser_menu_sheet.dart @@ -384,14 +384,10 @@ class _PageActionsCard extends HookConsumerWidget { ), _buildDivider(), - // Pin/Unpin Top Site - _PinTopSiteTile(selectedTabId: selectedTabId), - _buildDivider(), - // Find in page ListTile( leading: const Icon(Icons.search), - title: const Text('Find in page'), + title: const Text('Find in Page'), onTap: () { ref.read(bottomSheetControllerProvider.notifier).requestDismiss(); ref @@ -657,21 +653,26 @@ class _TranslatePageTile extends ConsumerWidget { final isTranslated = translationState?.isTranslated ?? false; - return ListTile( - leading: Icon( - Icons.translate, - color: isTranslated ? Theme.of(context).colorScheme.primary : null, - ), - title: Text(isTranslated ? 'Translated' : 'Translate Page'), - onTap: () async { - Navigator.pop(context); - if (context.mounted) { - await showTranslationBottomSheet( - context, - selectedTabId: selectedTabId, - ); - } - }, + return Column( + children: [ + _buildDivider(), + ListTile( + leading: Icon( + Icons.translate, + color: isTranslated ? Theme.of(context).colorScheme.primary : null, + ), + title: Text(isTranslated ? 'Translated' : 'Translate Page'), + onTap: () async { + Navigator.pop(context); + if (context.mounted) { + await showTranslationBottomSheet( + context, + selectedTabId: selectedTabId, + ); + } + }, + ), + ], ); } } @@ -691,7 +692,7 @@ class _FetchFeedsTile extends HookConsumerWidget { _buildDivider(), ListTile( leading: const Icon(Icons.rss_feed), - title: const Text('Fetch Feeds'), + title: const Text('Fetch Feeds on Page'), onTap: () { showFeeds.value = true; }, @@ -786,7 +787,9 @@ class _TabActionsCard extends HookConsumerWidget { ListTile( leading: const Icon(Icons.more_horiz), title: const Text('More'), - subtitle: const Text('Clone Tab, Export, Fetch Feeds'), + subtitle: const Text( + 'Clone Tab, Export, Pin Top Site, Fetch Feeds', + ), trailing: const Icon(Icons.expand_more), onTap: () => showMore.value = true, ) @@ -794,6 +797,8 @@ class _TabActionsCard extends HookConsumerWidget { _CloneTabExpansion(selectedTabId: selectedTabId), _buildDivider(), _ExportExpansion(selectedTabId: selectedTabId), + _buildDivider(), + _PinTopSiteTile(selectedTabId: selectedTabId), _FetchFeedsTile(selectedTabId: selectedTabId), ], ], diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/tab_menu.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/tab_menu.dart index 8ccd1015..d22d4827 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/tab_menu.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/tab_menu.dart @@ -119,7 +119,7 @@ class TabMenu extends HookConsumerWidget { .show(); }, leadingIcon: const Icon(Icons.search), - child: const Text('Find in page'), + child: const Text('Find in Page'), ), if (enableReaderMode) ReaderButton( @@ -183,7 +183,7 @@ class TabMenu extends HookConsumerWidget { replacement: MenuItemButton( closeOnActivate: false, leadingIcon: const Icon(Icons.rss_feed), - child: const Text('Fetch Feeds'), + child: const Text('Fetch Feeds on Page'), onPressed: () { showFeeds.value = true; }, diff --git a/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart b/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart index 6ae5ec67..ea143383 100644 --- a/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart +++ b/app/lib/features/geckoview/features/find_in_page/presentation/widgets/find_in_page.dart @@ -85,7 +85,7 @@ class FindInPageWidget extends HookConsumerWidget { autofocus: true, autocorrect: false, decoration: const InputDecoration.collapsed( - hintText: 'Find in page', + hintText: 'Find in Page', ), keyboardType: TextInputType.text, onChanged: onSearchTextChanged, diff --git a/packages/flutter_mozilla_components/lib/src/domain/entities/default_selection_actions.dart b/packages/flutter_mozilla_components/lib/src/domain/entities/default_selection_actions.dart index abc0f088..8e1992e5 100644 --- a/packages/flutter_mozilla_components/lib/src/domain/entities/default_selection_actions.dart +++ b/packages/flutter_mozilla_components/lib/src/domain/entities/default_selection_actions.dart @@ -70,7 +70,7 @@ class FindInPageAction extends BaseSelectionAction { FindInPageAction(PerformAction action) : super( id: 'CUSTOM_CONTEXT_MENU_FIND_IN_PAGE', - title: 'Find in page', + title: 'Find in Page', performAction: action, ); }