From 9c21276ef9e99659cc43a53bc40746225e642013 Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 16:40:29 -0500 Subject: [PATCH 01/12] show custom cols for expenses too --- src/components/Search/SearchPageHeader/SearchFiltersBar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx b/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx index b978ffc872a3..86325f23ab73 100644 --- a/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx +++ b/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx @@ -781,7 +781,7 @@ function SearchFiltersBar({ [], ); - const shouldShowColumnsButton = isLargeScreenWidth && queryJSON.type === CONST.SEARCH.DATA_TYPES.EXPENSE_REPORT; + const shouldShowColumnsButton = isLargeScreenWidth && (queryJSON.type === CONST.SEARCH.DATA_TYPES.EXPENSE || queryJSON.type === CONST.SEARCH.DATA_TYPES.EXPENSE_REPORT); const filterButtonText = useMemo( () => translate('search.filtersHeader') + (hiddenSelectedFilters.length > 0 ? ` (${hiddenSelectedFilters.length})` : ''), From 9c5773b3322128cf09996a51cb3c1906fe788198 Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 16:43:23 -0500 Subject: [PATCH 02/12] add col types based on type --- src/CONST/index.ts | 47 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 7f2b5f5767a3..4bbda0dedc32 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -6701,17 +6701,50 @@ const CONST = { }, get CUSTOM_COLUMNS() { return { - DATE: this.TABLE_COLUMNS.DATE, - STATUS: this.TABLE_COLUMNS.STATUS, - TITLE: this.TABLE_COLUMNS.TITLE, - FROM: this.TABLE_COLUMNS.FROM, - TO: this.TABLE_COLUMNS.TO, - ACTION: this.TABLE_COLUMNS.ACTION, + [this.DATA_TYPES.EXPENSE]: { + RECEIPT: this.TABLE_COLUMNS.RECEIPT, + DATE: this.TABLE_COLUMNS.DATE, + MERCHANT: this.TABLE_COLUMNS.MERCHANT, + DESCRIPTION: this.TABLE_COLUMNS.DESCRIPTION, + FROM: this.TABLE_COLUMNS.FROM, + TO: this.TABLE_COLUMNS.TO, + CATEGORY: this.TABLE_COLUMNS.CATEGORY, + TAG: this.TABLE_COLUMNS.TAG, + TOTAL_AMOUNT: this.TABLE_COLUMNS.TOTAL_AMOUNT, + ACTION: this.TABLE_COLUMNS.ACTION, + }, + [this.DATA_TYPES.EXPENSE_REPORT]: { + DATE: this.TABLE_COLUMNS.DATE, + STATUS: this.TABLE_COLUMNS.STATUS, + TITLE: this.TABLE_COLUMNS.TITLE, + FROM: this.TABLE_COLUMNS.FROM, + TO: this.TABLE_COLUMNS.TO, + ACTION: this.TABLE_COLUMNS.ACTION, + }, }; }, get DEFAULT_COLUMNS() { return { - EXPENSE_REPORT: [this.TABLE_COLUMNS.DATE, this.TABLE_COLUMNS.STATUS, this.TABLE_COLUMNS.TITLE, this.TABLE_COLUMNS.FROM, this.TABLE_COLUMNS.TO, this.TABLE_COLUMNS.ACTION], + [this.DATA_TYPES.EXPENSE]: [ + this.TABLE_COLUMNS.RECEIPT, + this.TABLE_COLUMNS.DATE, + this.TABLE_COLUMNS.MERCHANT, + this.TABLE_COLUMNS.DESCRIPTION, + this.TABLE_COLUMNS.FROM, + this.TABLE_COLUMNS.TO, + this.TABLE_COLUMNS.CATEGORY, + this.TABLE_COLUMNS.TAG, + this.TABLE_COLUMNS.TOTAL_AMOUNT, + this.TABLE_COLUMNS.ACTION, + ], + [this.DATA_TYPES.EXPENSE_REPORT]: [ + this.TABLE_COLUMNS.DATE, + this.TABLE_COLUMNS.STATUS, + this.TABLE_COLUMNS.TITLE, + this.TABLE_COLUMNS.FROM, + this.TABLE_COLUMNS.TO, + this.TABLE_COLUMNS.ACTION, + ], }; }, BOOLEAN: { From bc14dc6f993f53bc3602c66b92a6f81f003907d6 Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 16:46:23 -0500 Subject: [PATCH 03/12] get default and all options for the current type --- src/CONST/index.ts | 8 ++++++++ src/pages/Search/SearchColumnsPage.tsx | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 4bbda0dedc32..d7034bce78ed 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -6721,6 +6721,10 @@ const CONST = { TO: this.TABLE_COLUMNS.TO, ACTION: this.TABLE_COLUMNS.ACTION, }, + [this.DATA_TYPES.INVOICE]: {}, + [this.DATA_TYPES.TASK]: {}, + [this.DATA_TYPES.TRIP]: {}, + [this.DATA_TYPES.CHAT]: {}, }; }, get DEFAULT_COLUMNS() { @@ -6745,6 +6749,10 @@ const CONST = { this.TABLE_COLUMNS.TO, this.TABLE_COLUMNS.ACTION, ], + [this.DATA_TYPES.INVOICE]: [], + [this.DATA_TYPES.TASK]: [], + [this.DATA_TYPES.TRIP]: [], + [this.DATA_TYPES.CHAT]: [], }; }, BOOLEAN: { diff --git a/src/pages/Search/SearchColumnsPage.tsx b/src/pages/Search/SearchColumnsPage.tsx index 736a2466a7eb..419733c8915f 100644 --- a/src/pages/Search/SearchColumnsPage.tsx +++ b/src/pages/Search/SearchColumnsPage.tsx @@ -23,15 +23,16 @@ import ROUTES from '@src/ROUTES'; import type {SearchAdvancedFiltersForm} from '@src/types/form'; import arraysEqual from '@src/utils/arraysEqual'; -const allCustomColumns = Object.values(CONST.SEARCH.CUSTOM_COLUMNS); -const defaultCustomColumns = Object.values(CONST.SEARCH.DEFAULT_COLUMNS.EXPENSE_REPORT); - function SearchColumnsPage() { const styles = useThemeStyles(); const {translate} = useLocalize(); const [searchAdvancedFiltersForm] = useOnyx(ONYXKEYS.FORMS.SEARCH_ADVANCED_FILTERS_FORM, {canBeMissing: true}); + const queryType = searchAdvancedFiltersForm?.type ?? CONST.SEARCH.DATA_TYPES.EXPENSE; + const allCustomColumns = Object.values(CONST.SEARCH.CUSTOM_COLUMNS[queryType]); + const defaultCustomColumns = Object.values(CONST.SEARCH.DEFAULT_COLUMNS[queryType]); + const [selectedColumnIds, setSelectedColumnIds] = useState(() => { const columnIds = searchAdvancedFiltersForm?.columns?.filter((columnId) => Object.values(CONST.SEARCH.CUSTOM_COLUMNS).includes(columnId)) ?? []; From aa597264fa469632bc868ac8330eb3daeaa5dc9b Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 16:51:57 -0500 Subject: [PATCH 04/12] add all translations --- .../SearchPageHeader/SearchFiltersBar.tsx | 2 +- src/libs/SearchUIUtils.ts | 22 +++++++++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx b/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx index 86325f23ab73..292c98eb4902 100644 --- a/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx +++ b/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx @@ -827,7 +827,7 @@ function SearchFiltersBar({ expensifyIcons.Filter, expensifyIcons.Columns, openAdvancedFilters, - isLargeScreenWidth, + shouldShowColumnsButton, translate, ], ); diff --git a/src/libs/SearchUIUtils.ts b/src/libs/SearchUIUtils.ts index 288907d98c7c..f507dc862fd8 100644 --- a/src/libs/SearchUIUtils.ts +++ b/src/libs/SearchUIUtils.ts @@ -2049,20 +2049,28 @@ function getExpenseTypeTranslationKey(expenseType: ValueOf): TranslationPaths { +function getSearchColumnTranslationKey(columnId: ValueOf): TranslationPaths { // eslint-disable-next-line default-case switch (columnId) { - case CONST.SEARCH.CUSTOM_COLUMNS.DATE: + case CONST.SEARCH.TABLE_COLUMNS.DATE: return 'common.date'; - case CONST.SEARCH.CUSTOM_COLUMNS.STATUS: + case CONST.SEARCH.TABLE_COLUMNS.MERCHANT: return 'common.status'; - case CONST.SEARCH.CUSTOM_COLUMNS.TITLE: + case CONST.SEARCH.TABLE_COLUMNS.DESCRIPTION: return 'common.title'; - case CONST.SEARCH.CUSTOM_COLUMNS.FROM: + case CONST.SEARCH.TABLE_COLUMNS.FROM: return 'common.from'; - case CONST.SEARCH.CUSTOM_COLUMNS.TO: + case CONST.SEARCH.TABLE_COLUMNS.TO: return 'common.to'; - case CONST.SEARCH.CUSTOM_COLUMNS.ACTION: + case CONST.SEARCH.TABLE_COLUMNS.CATEGORY: + return 'common.action'; + case CONST.SEARCH.TABLE_COLUMNS.RECEIPT: + return 'common.receipt'; + case CONST.SEARCH.TABLE_COLUMNS.TAG: + return 'common.tag'; + case CONST.SEARCH.TABLE_COLUMNS.TOTAL_AMOUNT: + return 'iou.amount'; + case CONST.SEARCH.TABLE_COLUMNS.ACTION: return 'common.action'; } } From dec8460dfff966852959b7f63f55c2a356acd53f Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 16:56:14 -0500 Subject: [PATCH 05/12] add methods to get cols --- src/CONST/index.ts | 31 ++++++++++---------------- src/components/Search/types.ts | 2 +- src/libs/SearchUIUtils.ts | 40 +++++++++++++++++++++++++++++++++- 3 files changed, 52 insertions(+), 21 deletions(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index d7034bce78ed..5096dcb0ae7a 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -6701,7 +6701,7 @@ const CONST = { }, get CUSTOM_COLUMNS() { return { - [this.DATA_TYPES.EXPENSE]: { + EXPENSE: { RECEIPT: this.TABLE_COLUMNS.RECEIPT, DATE: this.TABLE_COLUMNS.DATE, MERCHANT: this.TABLE_COLUMNS.MERCHANT, @@ -6713,7 +6713,7 @@ const CONST = { TOTAL_AMOUNT: this.TABLE_COLUMNS.TOTAL_AMOUNT, ACTION: this.TABLE_COLUMNS.ACTION, }, - [this.DATA_TYPES.EXPENSE_REPORT]: { + EXPENSE_REPORT: { DATE: this.TABLE_COLUMNS.DATE, STATUS: this.TABLE_COLUMNS.STATUS, TITLE: this.TABLE_COLUMNS.TITLE, @@ -6721,15 +6721,15 @@ const CONST = { TO: this.TABLE_COLUMNS.TO, ACTION: this.TABLE_COLUMNS.ACTION, }, - [this.DATA_TYPES.INVOICE]: {}, - [this.DATA_TYPES.TASK]: {}, - [this.DATA_TYPES.TRIP]: {}, - [this.DATA_TYPES.CHAT]: {}, + INVOICE: {}, + TASK: {}, + TRIP: {}, + CHAT: {}, }; }, get DEFAULT_COLUMNS() { return { - [this.DATA_TYPES.EXPENSE]: [ + EXPENSE: [ this.TABLE_COLUMNS.RECEIPT, this.TABLE_COLUMNS.DATE, this.TABLE_COLUMNS.MERCHANT, @@ -6741,18 +6741,11 @@ const CONST = { this.TABLE_COLUMNS.TOTAL_AMOUNT, this.TABLE_COLUMNS.ACTION, ], - [this.DATA_TYPES.EXPENSE_REPORT]: [ - this.TABLE_COLUMNS.DATE, - this.TABLE_COLUMNS.STATUS, - this.TABLE_COLUMNS.TITLE, - this.TABLE_COLUMNS.FROM, - this.TABLE_COLUMNS.TO, - this.TABLE_COLUMNS.ACTION, - ], - [this.DATA_TYPES.INVOICE]: [], - [this.DATA_TYPES.TASK]: [], - [this.DATA_TYPES.TRIP]: [], - [this.DATA_TYPES.CHAT]: [], + EXPENSE_REPORT: [this.TABLE_COLUMNS.DATE, this.TABLE_COLUMNS.STATUS, this.TABLE_COLUMNS.TITLE, this.TABLE_COLUMNS.FROM, this.TABLE_COLUMNS.TO, this.TABLE_COLUMNS.ACTION], + INVOICE: [], + TASK: [], + TRIP: [], + CHAT: [], }; }, BOOLEAN: { diff --git a/src/components/Search/types.ts b/src/components/Search/types.ts index ca6a7b532ddf..d756a65f7701 100644 --- a/src/components/Search/types.ts +++ b/src/components/Search/types.ts @@ -107,7 +107,7 @@ type TableColumnSize = ValueOf; type SearchDatePreset = ValueOf; type SearchWithdrawalType = ValueOf; type SearchAction = ValueOf; -type SearchCustomColumnIds = ValueOf; +type SearchCustomColumnIds = ValueOf | ValueOf; type SearchContextData = { currentSearchHash: number; diff --git a/src/libs/SearchUIUtils.ts b/src/libs/SearchUIUtils.ts index f507dc862fd8..eb0eb31a294e 100644 --- a/src/libs/SearchUIUtils.ts +++ b/src/libs/SearchUIUtils.ts @@ -2049,7 +2049,43 @@ function getExpenseTypeTranslationKey(expenseType: ValueOf): TranslationPaths { +function getCustomColumns(type: SearchDataTypes) { + // eslint-disable-next-line default-case + switch (type) { + case CONST.SEARCH.DATA_TYPES.EXPENSE: + return CONST.SEARCH.CUSTOM_COLUMNS.EXPENSE; + case CONST.SEARCH.DATA_TYPES.EXPENSE_REPORT: + return CONST.SEARCH.CUSTOM_COLUMNS.EXPENSE_REPORT; + case CONST.SEARCH.DATA_TYPES.INVOICE: + return CONST.SEARCH.CUSTOM_COLUMNS.INVOICE; + case CONST.SEARCH.DATA_TYPES.TASK: + return CONST.SEARCH.CUSTOM_COLUMNS.TASK; + case CONST.SEARCH.DATA_TYPES.TRIP: + return CONST.SEARCH.CUSTOM_COLUMNS.TRIP; + case CONST.SEARCH.DATA_TYPES.CHAT: + return CONST.SEARCH.CUSTOM_COLUMNS.CHAT; + } +} + +function getCustomColumnDefault(type: SearchDataTypes) { + // eslint-disable-next-line default-case + switch (type) { + case CONST.SEARCH.DATA_TYPES.EXPENSE: + return CONST.SEARCH.DEFAULT_COLUMNS.EXPENSE; + case CONST.SEARCH.DATA_TYPES.EXPENSE_REPORT: + return CONST.SEARCH.DEFAULT_COLUMNS.EXPENSE_REPORT; + case CONST.SEARCH.DATA_TYPES.INVOICE: + return CONST.SEARCH.DEFAULT_COLUMNS.INVOICE; + case CONST.SEARCH.DATA_TYPES.TASK: + return CONST.SEARCH.DEFAULT_COLUMNS.TASK; + case CONST.SEARCH.DATA_TYPES.TRIP: + return CONST.SEARCH.DEFAULT_COLUMNS.TRIP; + case CONST.SEARCH.DATA_TYPES.CHAT: + return CONST.SEARCH.DEFAULT_COLUMNS.CHAT; + } +} + +function getSearchColumnTranslationKey(columnId: SearchCustomColumnIds): TranslationPaths { // eslint-disable-next-line default-case switch (columnId) { case CONST.SEARCH.TABLE_COLUMNS.DATE: @@ -2773,5 +2809,7 @@ export { getTransactionFromTransactionListItem, getSearchColumnTranslationKey, getTableMinWidth, + getCustomColumns, + getCustomColumnDefault, }; export type {SavedSearchMenuItem, SearchTypeMenuSection, SearchTypeMenuItem, SearchDateModifier, SearchDateModifierLower, SearchKey, ArchivedReportsIDSet}; From 6d20eb83592bab42ee0ebac7efafe48d485b2a6a Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 16:59:15 -0500 Subject: [PATCH 06/12] fix up more types --- src/libs/SearchUIUtils.ts | 20 ++++++++++++-------- src/pages/Search/SearchColumnsPage.tsx | 6 +++--- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/libs/SearchUIUtils.ts b/src/libs/SearchUIUtils.ts index eb0eb31a294e..f8cb7f20928e 100644 --- a/src/libs/SearchUIUtils.ts +++ b/src/libs/SearchUIUtils.ts @@ -2049,25 +2049,25 @@ function getExpenseTypeTranslationKey(expenseType: ValueOf(() => { const columnIds = searchAdvancedFiltersForm?.columns?.filter((columnId) => Object.values(CONST.SEARCH.CUSTOM_COLUMNS).includes(columnId)) ?? []; From ff01b9a5a295e9a01b01d5d6830239b4eb9e94fc Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 17:09:31 -0500 Subject: [PATCH 07/12] reset when type changes --- src/components/Search/SearchPageHeader/SearchFiltersBar.tsx | 1 + src/pages/Search/SearchColumnsPage.tsx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx b/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx index 292c98eb4902..25adbc97eedd 100644 --- a/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx +++ b/src/components/Search/SearchPageHeader/SearchFiltersBar.tsx @@ -307,6 +307,7 @@ function SearchFiltersBar({ // If the type has changed, reset the status so we dont have an invalid status selected if (updatedFilterFormValues.type !== filterFormValues.type) { updatedFilterFormValues.status = CONST.SEARCH.STATUS.EXPENSE.ALL; + updatedFilterFormValues.columns = []; } const queryString = buildQueryStringFromFilterFormValues(updatedFilterFormValues); diff --git a/src/pages/Search/SearchColumnsPage.tsx b/src/pages/Search/SearchColumnsPage.tsx index c301b1c06c0f..682591248d3f 100644 --- a/src/pages/Search/SearchColumnsPage.tsx +++ b/src/pages/Search/SearchColumnsPage.tsx @@ -34,7 +34,7 @@ function SearchColumnsPage() { const defaultCustomColumns = getCustomColumnDefault(queryType); const [selectedColumnIds, setSelectedColumnIds] = useState(() => { - const columnIds = searchAdvancedFiltersForm?.columns?.filter((columnId) => Object.values(CONST.SEARCH.CUSTOM_COLUMNS).includes(columnId)) ?? []; + const columnIds = searchAdvancedFiltersForm?.columns?.filter((columnId) => allCustomColumns.includes(columnId)) ?? []; // We dont allow the user to unselect all columns, so we can assume that no columns = default columns if (!columnIds.length) { From 044a1f229cc6b0906f92ddb3bdda8d2f0e33d6b7 Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 17:17:41 -0500 Subject: [PATCH 08/12] enable custom columns --- src/libs/SearchUIUtils.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/libs/SearchUIUtils.ts b/src/libs/SearchUIUtils.ts index f8cb7f20928e..6ab38d3a8ad2 100644 --- a/src/libs/SearchUIUtils.ts +++ b/src/libs/SearchUIUtils.ts @@ -58,6 +58,7 @@ import type { SearchWithdrawalIDGroup, } from '@src/types/onyx/SearchResults'; import type IconAsset from '@src/types/utils/IconAsset'; +import arraysEqual from '@src/utils/arraysEqual'; import {hasSynchronizationErrorMessage} from './actions/connections'; import {canApproveIOU, canIOUBePaid, canSubmitReport, startMoneyRequest} from './actions/IOU'; import {setIsOpenConfirmNavigateExpensifyClassicModalOpen} from './actions/isOpenConfirmNavigateExpensifyClassicModal'; @@ -2619,6 +2620,18 @@ function getColumnsToShow( } }; + // If the user has set custom columns for the search, we need to respect their preference, and only show + // them what they want to see + if (!arraysEqual(Object.values(CONST.SEARCH.DEFAULT_COLUMNS.EXPENSE), visibleColumns) && visibleColumns.length > 0) { + const requiredColumns = new Set([CONST.SEARCH.TABLE_COLUMNS.AVATAR, CONST.SEARCH.TABLE_COLUMNS.TOTAL_AMOUNT]); + + for (const column of Object.keys(columns) as SearchCustomColumnIds[]) { + columns[column] = visibleColumns.includes(column) || requiredColumns.has(column); + } + + return columns; + } + if (Array.isArray(data)) { for (const item of data) { updateColumns(item); From 56df554957050db9f14c03084b062e5c524fc486 Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 17:18:12 -0500 Subject: [PATCH 09/12] remove amount from expense --- src/CONST/index.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 5096dcb0ae7a..8e5a40067c53 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -6710,7 +6710,6 @@ const CONST = { TO: this.TABLE_COLUMNS.TO, CATEGORY: this.TABLE_COLUMNS.CATEGORY, TAG: this.TABLE_COLUMNS.TAG, - TOTAL_AMOUNT: this.TABLE_COLUMNS.TOTAL_AMOUNT, ACTION: this.TABLE_COLUMNS.ACTION, }, EXPENSE_REPORT: { @@ -6738,7 +6737,6 @@ const CONST = { this.TABLE_COLUMNS.TO, this.TABLE_COLUMNS.CATEGORY, this.TABLE_COLUMNS.TAG, - this.TABLE_COLUMNS.TOTAL_AMOUNT, this.TABLE_COLUMNS.ACTION, ], EXPENSE_REPORT: [this.TABLE_COLUMNS.DATE, this.TABLE_COLUMNS.STATUS, this.TABLE_COLUMNS.TITLE, this.TABLE_COLUMNS.FROM, this.TABLE_COLUMNS.TO, this.TABLE_COLUMNS.ACTION], From dac619e72594d36ef231f7dfda12c48d6b927d27 Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 17:26:41 -0500 Subject: [PATCH 10/12] fix options that shouldnt exist --- src/libs/SearchUIUtils.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/libs/SearchUIUtils.ts b/src/libs/SearchUIUtils.ts index 6ab38d3a8ad2..f93016ee8a19 100644 --- a/src/libs/SearchUIUtils.ts +++ b/src/libs/SearchUIUtils.ts @@ -2092,9 +2092,9 @@ function getSearchColumnTranslationKey(columnId: SearchCustomColumnIds): Transla case CONST.SEARCH.TABLE_COLUMNS.DATE: return 'common.date'; case CONST.SEARCH.TABLE_COLUMNS.MERCHANT: - return 'common.status'; + return 'common.merchant'; case CONST.SEARCH.TABLE_COLUMNS.DESCRIPTION: - return 'common.title'; + return 'common.description'; case CONST.SEARCH.TABLE_COLUMNS.FROM: return 'common.from'; case CONST.SEARCH.TABLE_COLUMNS.TO: @@ -2105,8 +2105,6 @@ function getSearchColumnTranslationKey(columnId: SearchCustomColumnIds): Transla return 'common.receipt'; case CONST.SEARCH.TABLE_COLUMNS.TAG: return 'common.tag'; - case CONST.SEARCH.TABLE_COLUMNS.TOTAL_AMOUNT: - return 'iou.amount'; case CONST.SEARCH.TABLE_COLUMNS.ACTION: return 'common.action'; case CONST.SEARCH.TABLE_COLUMNS.TITLE: From a0d3dc9f8185e8ac9f227dbbc23c8251651096d1 Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 17:29:00 -0500 Subject: [PATCH 11/12] more incorrect consts on test steps --- src/CONST/index.ts | 2 -- src/libs/SearchUIUtils.ts | 4 +--- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 8e5a40067c53..c251b5f52000 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -6705,7 +6705,6 @@ const CONST = { RECEIPT: this.TABLE_COLUMNS.RECEIPT, DATE: this.TABLE_COLUMNS.DATE, MERCHANT: this.TABLE_COLUMNS.MERCHANT, - DESCRIPTION: this.TABLE_COLUMNS.DESCRIPTION, FROM: this.TABLE_COLUMNS.FROM, TO: this.TABLE_COLUMNS.TO, CATEGORY: this.TABLE_COLUMNS.CATEGORY, @@ -6732,7 +6731,6 @@ const CONST = { this.TABLE_COLUMNS.RECEIPT, this.TABLE_COLUMNS.DATE, this.TABLE_COLUMNS.MERCHANT, - this.TABLE_COLUMNS.DESCRIPTION, this.TABLE_COLUMNS.FROM, this.TABLE_COLUMNS.TO, this.TABLE_COLUMNS.CATEGORY, diff --git a/src/libs/SearchUIUtils.ts b/src/libs/SearchUIUtils.ts index f93016ee8a19..15fe3441ba2f 100644 --- a/src/libs/SearchUIUtils.ts +++ b/src/libs/SearchUIUtils.ts @@ -2093,14 +2093,12 @@ function getSearchColumnTranslationKey(columnId: SearchCustomColumnIds): Transla return 'common.date'; case CONST.SEARCH.TABLE_COLUMNS.MERCHANT: return 'common.merchant'; - case CONST.SEARCH.TABLE_COLUMNS.DESCRIPTION: - return 'common.description'; case CONST.SEARCH.TABLE_COLUMNS.FROM: return 'common.from'; case CONST.SEARCH.TABLE_COLUMNS.TO: return 'common.to'; case CONST.SEARCH.TABLE_COLUMNS.CATEGORY: - return 'common.action'; + return 'common.category'; case CONST.SEARCH.TABLE_COLUMNS.RECEIPT: return 'common.receipt'; case CONST.SEARCH.TABLE_COLUMNS.TAG: From 1eb77819cbc30368f8368a1388c84c2526ed2834 Mon Sep 17 00:00:00 2001 From: Jack Senyitko Date: Mon, 15 Dec 2025 18:57:16 -0500 Subject: [PATCH 12/12] remove clearAllFilters --- src/hooks/useSearchTypeMenu.tsx | 3 --- src/libs/SearchUIUtils.ts | 2 +- src/pages/Search/SearchColumnsPage.tsx | 2 -- src/pages/Search/SearchTypeMenu.tsx | 1 - 4 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/hooks/useSearchTypeMenu.tsx b/src/hooks/useSearchTypeMenu.tsx index 74cb1b28f120..c639059f7753 100644 --- a/src/hooks/useSearchTypeMenu.tsx +++ b/src/hooks/useSearchTypeMenu.tsx @@ -6,7 +6,6 @@ import type {PopoverMenuItem} from '@components/PopoverMenu'; import {useSearchContext} from '@components/Search/SearchContext'; import type {SearchQueryJSON} from '@components/Search/types'; import ThreeDotsMenu from '@components/ThreeDotsMenu'; -import {clearAllFilters} from '@libs/actions/Search'; import {mergeCardListWithWorkspaceFeeds} from '@libs/CardUtils'; import Navigation from '@libs/Navigation/Navigation'; import {getAllTaxRates} from '@libs/PolicyUtils'; @@ -109,7 +108,6 @@ export default function useSearchTypeMenu(queryJSON: SearchQueryJSON) { return { ...baseMenuItem, onSelected: () => { - clearAllFilters(); Navigation.navigate(ROUTES.SEARCH_ROOT.getRoute({query: item?.query ?? '', name: item?.name})); }, rightComponent: ( @@ -181,7 +179,6 @@ export default function useSearchTypeMenu(queryJSON: SearchQueryJSON) { containerStyle: isSelected ? [{backgroundColor: theme.border}] : undefined, shouldCallAfterModalHide: true, onSelected: singleExecution(() => { - clearAllFilters(); Navigation.navigate(ROUTES.SEARCH_ROOT.getRoute({query: item.searchQuery})); }), }); diff --git a/src/libs/SearchUIUtils.ts b/src/libs/SearchUIUtils.ts index 15fe3441ba2f..1f6acf88a6eb 100644 --- a/src/libs/SearchUIUtils.ts +++ b/src/libs/SearchUIUtils.ts @@ -2619,7 +2619,7 @@ function getColumnsToShow( // If the user has set custom columns for the search, we need to respect their preference, and only show // them what they want to see if (!arraysEqual(Object.values(CONST.SEARCH.DEFAULT_COLUMNS.EXPENSE), visibleColumns) && visibleColumns.length > 0) { - const requiredColumns = new Set([CONST.SEARCH.TABLE_COLUMNS.AVATAR, CONST.SEARCH.TABLE_COLUMNS.TOTAL_AMOUNT]); + const requiredColumns = new Set([CONST.SEARCH.TABLE_COLUMNS.AVATAR, CONST.SEARCH.TABLE_COLUMNS.TOTAL_AMOUNT, CONST.SEARCH.TABLE_COLUMNS.TYPE]); for (const column of Object.keys(columns) as SearchCustomColumnIds[]) { columns[column] = visibleColumns.includes(column) || requiredColumns.has(column); diff --git a/src/pages/Search/SearchColumnsPage.tsx b/src/pages/Search/SearchColumnsPage.tsx index 682591248d3f..5b03943d691c 100644 --- a/src/pages/Search/SearchColumnsPage.tsx +++ b/src/pages/Search/SearchColumnsPage.tsx @@ -13,7 +13,6 @@ import TextLink from '@components/TextLink'; import useLocalize from '@hooks/useLocalize'; import useOnyx from '@hooks/useOnyx'; import useThemeStyles from '@hooks/useThemeStyles'; -import {clearAllFilters} from '@libs/actions/Search'; import Navigation from '@libs/Navigation/Navigation'; import {buildQueryStringFromFilterFormValues} from '@libs/SearchQueryUtils'; import {getCustomColumnDefault, getCustomColumns, getSearchColumnTranslationKey} from '@libs/SearchUIUtils'; @@ -82,7 +81,6 @@ function SearchColumnsPage() { const updatedAdvancedFilters: Partial = {...searchAdvancedFiltersForm, columns: selectedColumnIds}; const queryString = buildQueryStringFromFilterFormValues(updatedAdvancedFilters); - clearAllFilters(); Navigation.navigate(ROUTES.SEARCH_ROOT.getRoute({query: queryString}), {forceReplace: true}); }; diff --git a/src/pages/Search/SearchTypeMenu.tsx b/src/pages/Search/SearchTypeMenu.tsx index 99cbcf564c01..afdd77471f9c 100644 --- a/src/pages/Search/SearchTypeMenu.tsx +++ b/src/pages/Search/SearchTypeMenu.tsx @@ -100,7 +100,6 @@ function SearchTypeMenu({queryJSON}: SearchTypeMenuProps) { return { ...baseMenuItem, onPress: () => { - clearAllFilters(); Navigation.navigate(ROUTES.SEARCH_ROOT.getRoute({query: item?.query ?? '', name: item?.name})); }, rightComponent: (