From d647dd108259301ba643bbfda290b3ef44098090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Jasikowski=20=28via=20MelvinBot=29?= Date: Mon, 21 Sep 2026 10:18:58 +0000 Subject: [PATCH] Keep the narrow Spend page header static instead of echoing the selected tab MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: MichaƂ Jasikowski --- .../SearchPageHeader/SearchPageHeaderCommon.tsx | 4 +--- .../SearchPageHeader/SearchPageHeaderNarrow.tsx | 14 ++++++++++---- .../SearchPageHeader/getSearchPageHeaderTitle.ts | 4 ++-- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/components/Search/SearchPageHeader/SearchPageHeaderCommon.tsx b/src/components/Search/SearchPageHeader/SearchPageHeaderCommon.tsx index ac20d1781521..d580ae0754c4 100644 --- a/src/components/Search/SearchPageHeader/SearchPageHeaderCommon.tsx +++ b/src/components/Search/SearchPageHeader/SearchPageHeaderCommon.tsx @@ -11,10 +11,9 @@ import getSearchPageHeaderTitle from './getSearchPageHeaderTitle'; type SearchPageHeaderCommonProps = { queryJSONType: SearchDataTypes; - shouldShowLoadingBar?: boolean; }; -function SearchPageHeaderCommon({queryJSONType, shouldShowLoadingBar}: SearchPageHeaderCommonProps) { +function SearchPageHeaderCommon({queryJSONType}: SearchPageHeaderCommonProps) { const {translate} = useLocalize(); const typeMenuSections = useSearchTypeMenuSections(); const {currentSearchKey} = useSearchQueryContext(); @@ -24,7 +23,6 @@ function SearchPageHeaderCommon({queryJSONType, shouldShowLoadingBar}: SearchPag return ( diff --git a/src/components/Search/SearchPageHeader/SearchPageHeaderNarrow.tsx b/src/components/Search/SearchPageHeader/SearchPageHeaderNarrow.tsx index ec6970e40954..50204db4e5ae 100644 --- a/src/components/Search/SearchPageHeader/SearchPageHeaderNarrow.tsx +++ b/src/components/Search/SearchPageHeader/SearchPageHeaderNarrow.tsx @@ -1,11 +1,12 @@ +import TopBar from '@components/Navigation/TopBar'; import type {SearchQueryJSON} from '@components/Search/types'; +import useLocalize from '@hooks/useLocalize'; + import SearchSelectedNarrow from '@pages/Search/SearchSelectedNarrow'; import React from 'react'; -import SearchPageHeaderCommon from './SearchPageHeaderCommon'; - type SearchPageHeaderNarrowProps = { queryJSON: SearchQueryJSON; shouldShowLoadingBar: boolean; @@ -13,14 +14,19 @@ type SearchPageHeaderNarrowProps = { }; function SearchPageHeaderNarrow({queryJSON, shouldShowLoadingBar = false, isMobileSelectionModeEnabled}: SearchPageHeaderNarrowProps) { + const {translate} = useLocalize(); + if (isMobileSelectionModeEnabled) { return ; } + // The narrow header is the top-level page title, so it stays a static "Spend". The tab selector rendered directly + // below it already names the current view, and repeating that name here would show the same label twice. return ( - ); } diff --git a/src/components/Search/SearchPageHeader/getSearchPageHeaderTitle.ts b/src/components/Search/SearchPageHeader/getSearchPageHeaderTitle.ts index afa0ebb2edad..698000da4159 100644 --- a/src/components/Search/SearchPageHeader/getSearchPageHeaderTitle.ts +++ b/src/components/Search/SearchPageHeader/getSearchPageHeaderTitle.ts @@ -20,8 +20,8 @@ type SearchPageHeaderTitleDeps = { }; /** - * Resolves the Search page header title using a single priority chain shared by the wide and narrow headers so the two - * can't diverge: + * Resolves the title for the wide Search page content header, which names the current view. The narrow header is the + * top-level page title and stays a static "Spend", so it deliberately doesn't use this helper. The priority chain is: * a. the active saved search's display name, * b. the matched suggested-search label, then the data-type fallbacks (task / trip / invoice / chat), * c. the generic "Spend" fallback.