From 4609dc9506729a136d7d5c55024d57a7c0e6a2bc Mon Sep 17 00:00:00 2001 From: Mukher Date: Sat, 2 May 2026 11:07:40 +0500 Subject: [PATCH 1/4] added Avatar column to report table column selector --- src/CONST/index.ts | 10 ++++++++-- src/languages/de.ts | 1 + src/languages/en.ts | 1 + src/languages/es.ts | 1 + src/libs/SearchUIUtils.ts | 2 ++ src/pages/Search/SearchColumnsPage.tsx | 1 + 6 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 3e74e47253f2..d4936b8f333e 100644 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -7646,6 +7646,7 @@ const CONST = { ACTION: this.TABLE_COLUMNS.ACTION, }, EXPENSE_REPORT: { + AVATAR: this.TABLE_COLUMNS.AVATAR, DATE: this.TABLE_COLUMNS.DATE, SUBMITTED: this.TABLE_COLUMNS.SUBMITTED, APPROVED: this.TABLE_COLUMNS.APPROVED, @@ -7690,17 +7691,20 @@ const CONST = { get GROUP_CUSTOM_COLUMNS() { return { FROM: { + AVATAR: this.TABLE_COLUMNS.AVATAR, FROM: this.TABLE_COLUMNS.GROUP_FROM, EXPENSES: this.TABLE_COLUMNS.GROUP_EXPENSES, TOTAL: this.TABLE_COLUMNS.GROUP_TOTAL, }, CARD: { + AVATAR: this.TABLE_COLUMNS.AVATAR, CARD: this.TABLE_COLUMNS.GROUP_CARD, FEED: this.TABLE_COLUMNS.GROUP_FEED, EXPENSES: this.TABLE_COLUMNS.GROUP_EXPENSES, TOTAL: this.TABLE_COLUMNS.GROUP_TOTAL, }, WITHDRAWAL_ID: { + AVATAR: this.TABLE_COLUMNS.AVATAR, WITHDRAWN: this.TABLE_COLUMNS.GROUP_WITHDRAWN, WITHDRAWAL_STATUS: this.TABLE_COLUMNS.GROUP_WITHDRAWAL_STATUS, BANK_ACCOUNT: this.TABLE_COLUMNS.GROUP_BANK_ACCOUNT, @@ -7758,6 +7762,7 @@ const CONST = { this.TABLE_COLUMNS.TOTAL_AMOUNT, ], EXPENSE_REPORT: [ + this.TABLE_COLUMNS.AVATAR, this.TABLE_COLUMNS.DATE, this.TABLE_COLUMNS.STATUS, this.TABLE_COLUMNS.TITLE, @@ -7774,9 +7779,10 @@ const CONST = { }, get GROUP_DEFAULT_COLUMNS() { return { - FROM: [this.TABLE_COLUMNS.GROUP_FROM, this.TABLE_COLUMNS.GROUP_EXPENSES, this.TABLE_COLUMNS.GROUP_TOTAL], - CARD: [this.TABLE_COLUMNS.GROUP_CARD, this.TABLE_COLUMNS.GROUP_FEED, this.TABLE_COLUMNS.GROUP_EXPENSES, this.TABLE_COLUMNS.GROUP_TOTAL], + FROM: [this.TABLE_COLUMNS.AVATAR, this.TABLE_COLUMNS.GROUP_FROM, this.TABLE_COLUMNS.GROUP_EXPENSES, this.TABLE_COLUMNS.GROUP_TOTAL], + CARD: [this.TABLE_COLUMNS.AVATAR, this.TABLE_COLUMNS.GROUP_CARD, this.TABLE_COLUMNS.GROUP_FEED, this.TABLE_COLUMNS.GROUP_EXPENSES, this.TABLE_COLUMNS.GROUP_TOTAL], WITHDRAWAL_ID: [ + this.TABLE_COLUMNS.AVATAR, this.TABLE_COLUMNS.GROUP_WITHDRAWN, this.TABLE_COLUMNS.GROUP_WITHDRAWAL_STATUS, this.TABLE_COLUMNS.GROUP_BANK_ACCOUNT, diff --git a/src/languages/de.ts b/src/languages/de.ts index 142d44866eb2..a805dcdeef17 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -182,6 +182,7 @@ const translations: TranslationDeepObject = { members: 'Mitglieder', invite: 'Einladen', here: 'hier', + avatar: 'Avatar', date: 'Datum', dob: 'Geburtsdatum', currentYear: 'Laufendes Jahr', diff --git a/src/languages/en.ts b/src/languages/en.ts index 73911af0068e..b2ed852459c6 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -188,6 +188,7 @@ const translations = { members: 'Members', invite: 'Invite', here: 'here', + avatar: 'Avatar', date: 'Date', dob: 'Date of birth', currentYear: 'Current year', diff --git a/src/languages/es.ts b/src/languages/es.ts index efe26621c61e..14ac71cdc631 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -120,6 +120,7 @@ const translations: TranslationDeepObject = { members: 'Miembros', invite: 'Invitar', here: 'aquí', + avatar: 'Avatar', date: 'Fecha', dob: 'Fecha de nacimiento', currentYear: 'Año actual', diff --git a/src/libs/SearchUIUtils.ts b/src/libs/SearchUIUtils.ts index bdf78a8ef060..ba2c2509ea91 100644 --- a/src/libs/SearchUIUtils.ts +++ b/src/libs/SearchUIUtils.ts @@ -4010,6 +4010,8 @@ function getCustomColumnDefault(value?: SearchDataTypes | SearchGroupBy): Search function getSearchColumnTranslationKey(column: SearchColumnType): TranslationPaths { switch (column) { + case CONST.SEARCH.TABLE_COLUMNS.AVATAR: + return 'common.avatar'; case CONST.SEARCH.TABLE_COLUMNS.DATE: return 'common.date'; case CONST.SEARCH.TABLE_COLUMNS.SUBMITTED: diff --git a/src/pages/Search/SearchColumnsPage.tsx b/src/pages/Search/SearchColumnsPage.tsx index 98dea9a6b731..63a6dcba8a8c 100644 --- a/src/pages/Search/SearchColumnsPage.tsx +++ b/src/pages/Search/SearchColumnsPage.tsx @@ -26,6 +26,7 @@ function SearchColumnsPage() { // We need at least one element with flex1 in the table to ensure the table looks good in the UI, so we don't allow removing the total columns // since it makes sense for them to show up in an expense management App and it fixes the layout issues. const requiredColumns = new Set([ + CONST.SEARCH.TABLE_COLUMNS.AVATAR, CONST.SEARCH.TABLE_COLUMNS.TOTAL_AMOUNT, CONST.SEARCH.TABLE_COLUMNS.TOTAL, CONST.SEARCH.TABLE_COLUMNS.GROUP_CARD, From 298b6004c481f1215206b0fa9a355ab0d753cce6 Mon Sep 17 00:00:00 2001 From: Mukher Date: Sat, 2 May 2026 11:12:56 +0500 Subject: [PATCH 2/4] Remove de.ts avatar translation; keep only en/es Other languages will be auto-filled by the generateTranslations workflow. --- src/languages/de.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index a805dcdeef17..142d44866eb2 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -182,7 +182,6 @@ const translations: TranslationDeepObject = { members: 'Mitglieder', invite: 'Einladen', here: 'hier', - avatar: 'Avatar', date: 'Datum', dob: 'Geburtsdatum', currentYear: 'Laufendes Jahr', From 57a7d5c093666e32dd7238432f299c8dc5f64969 Mon Sep 17 00:00:00 2001 From: Mukher Date: Mon, 4 May 2026 13:55:19 +0500 Subject: [PATCH 3/4] replaced hardcoded avatar column with dynamic one --- .../ListItem/CardListItemHeader.tsx | 38 +++++++++---------- .../ListItem/ExpenseReportListItemRow.tsx | 35 ++++++++--------- .../ListItem/MemberListItemHeader.tsx | 38 +++++++++---------- .../ListItem/WithdrawalIDListItemHeader.tsx | 28 +++++++------- src/languages/de.ts | 1 + src/languages/fr.ts | 1 + src/languages/it.ts | 1 + src/languages/ja.ts | 1 + src/languages/nl.ts | 1 + src/languages/pl.ts | 1 + src/languages/pt-BR.ts | 1 + src/languages/zh-hans.ts | 1 + src/libs/SearchUIUtils.ts | 12 +++--- src/pages/Search/SearchColumnsPage.tsx | 1 - 14 files changed, 83 insertions(+), 77 deletions(-) diff --git a/src/components/Search/SearchList/ListItem/CardListItemHeader.tsx b/src/components/Search/SearchList/ListItem/CardListItemHeader.tsx index 916aeda088a3..14024d29b9c9 100644 --- a/src/components/Search/SearchList/ListItem/CardListItemHeader.tsx +++ b/src/components/Search/SearchList/ListItem/CardListItemHeader.tsx @@ -73,6 +73,24 @@ function CardListItemHeader({ StyleUtils.getItemBackgroundColorStyle(!!cardItem.isSelected, !!isFocused, !!isDisabled, theme.activeComponentBG, theme.hoverComponentBG)?.backgroundColor ?? theme.highlightBG; const columnComponents = { + [CONST.SEARCH.TABLE_COLUMNS.AVATAR]: ( + + + + + + + + ), [CONST.SEARCH.TABLE_COLUMNS.GROUP_CARD]: ( ({ )} - {isLargeScreenWidth && ( - <> - - - - - - - - - {columns?.map((column) => columnComponents[column as keyof typeof columnComponents])} - - )} + {isLargeScreenWidth && columns?.map((column) => columnComponents[column as keyof typeof columnComponents])} {!isLargeScreenWidth && ( diff --git a/src/components/Search/SearchList/ListItem/ExpenseReportListItemRow.tsx b/src/components/Search/SearchList/ListItem/ExpenseReportListItemRow.tsx index 98d7c0786c39..d32407d1efe8 100644 --- a/src/components/Search/SearchList/ListItem/ExpenseReportListItemRow.tsx +++ b/src/components/Search/SearchList/ListItem/ExpenseReportListItemRow.tsx @@ -74,7 +74,25 @@ function ExpenseReportListItemRow({ const currency = item.currency ?? CONST.CURRENCY.USD; const {totalDisplaySpend = 0, nonReimbursableSpend = 0, reimbursableSpend = 0, isAllScanning: isScanning = false} = item; + // Calculate the correct border color for avatars based on hover and focus states + const finalAvatarBorderColor = + StyleUtils.getItemBackgroundColorStyle(!!item.isSelected, !!isFocused || !!isHovered, !!item.isDisabled, theme.activeComponentBG, theme.hoverComponentBG)?.backgroundColor ?? + theme.highlightBG; + const columnComponents = { + [CONST.SEARCH.TABLE_COLUMNS.AVATAR]: ( + + + + ), [CONST.SEARCH.TABLE_COLUMNS.DATE]: ( t.pendingAction !== CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE); const expenseCount = (filteredTransactions?.length ? filteredTransactions.length : undefined) ?? item.transactionCount ?? 0; @@ -303,18 +316,6 @@ function ExpenseReportListItemRow({ sentryLabel={CONST.SENTRY_LABEL.SEARCH.EXPENSE_REPORT_CHECKBOX} /> )} - - - - {columns.map((column) => { const CellComponent = columnComponents[column as keyof typeof columnComponents]; return {CellComponent}; diff --git a/src/components/Search/SearchList/ListItem/MemberListItemHeader.tsx b/src/components/Search/SearchList/ListItem/MemberListItemHeader.tsx index bbc2a831555a..d69bce9e9b44 100644 --- a/src/components/Search/SearchList/ListItem/MemberListItemHeader.tsx +++ b/src/components/Search/SearchList/ListItem/MemberListItemHeader.tsx @@ -67,6 +67,24 @@ function MemberListItemHeader({ const formattedLogin = formatPhoneNumber(memberItem.login ?? ''); const columnComponents = { + [CONST.SEARCH.TABLE_COLUMNS.AVATAR]: ( + + + + + + + + ), [CONST.SEARCH.TABLE_COLUMNS.GROUP_FROM]: ( ({ )} - {!!isLargeScreenWidth && ( - <> - - - - - - - - - {columns?.map((column) => columnComponents[column as keyof typeof columnComponents])} - - )} + {!!isLargeScreenWidth && columns?.map((column) => columnComponents[column as keyof typeof columnComponents])} {!isLargeScreenWidth && ( diff --git a/src/components/Search/SearchList/ListItem/WithdrawalIDListItemHeader.tsx b/src/components/Search/SearchList/ListItem/WithdrawalIDListItemHeader.tsx index 954bfb528164..9e89bb899541 100644 --- a/src/components/Search/SearchList/ListItem/WithdrawalIDListItemHeader.tsx +++ b/src/components/Search/SearchList/ListItem/WithdrawalIDListItemHeader.tsx @@ -102,6 +102,19 @@ function WithdrawalIDListItemHeader({ })(); const columnComponents = { + [CONST.SEARCH.TABLE_COLUMNS.AVATAR]: ( + + + + ), [CONST.SEARCH.TABLE_COLUMNS.GROUP_BANK_ACCOUNT]: ( ({ )} - {isLargeScreenWidth && ( - <> - - - - - {columns?.map((column) => columnComponents[column as keyof typeof columnComponents])} - - )} + {isLargeScreenWidth && columns?.map((column) => columnComponents[column as keyof typeof columnComponents])} {!isLargeScreenWidth && ( diff --git a/src/languages/de.ts b/src/languages/de.ts index 142d44866eb2..53cd84160b4f 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -498,6 +498,7 @@ const translations: TranslationDeepObject = { nextMonth: 'Nächster Monat', previousYear: 'Vorheriges Jahr', nextYear: 'Nächstes Jahr', + avatar: 'Avatar', }, socials: { podcast: 'Folgen Sie uns auf Podcast', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 6f6122bbb9d2..60b7a7b9f755 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -498,6 +498,7 @@ const translations: TranslationDeepObject = { nextMonth: 'Le mois prochain', previousYear: 'Année précédente', nextYear: 'L’an prochain', + avatar: 'Avatar', }, socials: { podcast: 'Suivez-nous sur Podcast', diff --git a/src/languages/it.ts b/src/languages/it.ts index a237681a3a88..99183fd9aa17 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -498,6 +498,7 @@ const translations: TranslationDeepObject = { nextMonth: 'Il prossimo mese', previousYear: 'Anno precedente', nextYear: "L'anno prossimo", + avatar: 'Avatar', }, socials: { podcast: 'Seguici su Podcast', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 5292a3f4e807..852df682d48f 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -497,6 +497,7 @@ const translations: TranslationDeepObject = { nextMonth: '来月', previousYear: '前年', nextYear: '来年', + avatar: 'アバター', }, socials: { podcast: 'ポッドキャストでフォロー', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index f74f432e9c0c..5ae1caa467a9 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -497,6 +497,7 @@ const translations: TranslationDeepObject = { nextMonth: 'Volgende maand', previousYear: 'Vorig jaar', nextYear: 'Volgend jaar', + avatar: 'Avatar', }, socials: { podcast: 'Volg ons op Podcast', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 99a2805a8460..fff88118c5d8 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -497,6 +497,7 @@ const translations: TranslationDeepObject = { nextMonth: 'W przyszłym miesiącu', previousYear: 'Poprzedni rok', nextYear: 'W przyszłym roku', + avatar: 'Avatar', }, socials: { podcast: 'Śledź nas na Podcast', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 93cf7fa8fab3..60f3ed40bc9d 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -496,6 +496,7 @@ const translations: TranslationDeepObject = { nextMonth: 'Próximo mês', previousYear: 'Ano anterior', nextYear: 'Ano que vem', + avatar: 'Avatar', }, socials: { podcast: 'Siga-nos no Podcast', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index e90e1ce7d991..e44cdb8cce91 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -493,6 +493,7 @@ const translations: TranslationDeepObject = { nextMonth: '下个月', previousYear: '上一年', nextYear: '明年', + avatar: '头像', }, socials: { podcast: '在播客上关注我们', diff --git a/src/libs/SearchUIUtils.ts b/src/libs/SearchUIUtils.ts index ba2c2509ea91..def23a20cda6 100644 --- a/src/libs/SearchUIUtils.ts +++ b/src/libs/SearchUIUtils.ts @@ -3501,9 +3501,9 @@ const groupBySortFunction: Record = { }; const groupByRequiredColumns: Partial> = { - [CONST.SEARCH.GROUP_BY.FROM]: [CONST.SEARCH.TABLE_COLUMNS.AVATAR, CONST.SEARCH.TABLE_COLUMNS.GROUP_FROM], - [CONST.SEARCH.GROUP_BY.CARD]: [CONST.SEARCH.TABLE_COLUMNS.AVATAR, CONST.SEARCH.TABLE_COLUMNS.GROUP_CARD], - [CONST.SEARCH.GROUP_BY.WITHDRAWAL_ID]: [CONST.SEARCH.TABLE_COLUMNS.AVATAR, CONST.SEARCH.TABLE_COLUMNS.GROUP_WITHDRAWAL_ID], + [CONST.SEARCH.GROUP_BY.FROM]: [CONST.SEARCH.TABLE_COLUMNS.GROUP_FROM], + [CONST.SEARCH.GROUP_BY.CARD]: [CONST.SEARCH.TABLE_COLUMNS.GROUP_CARD], + [CONST.SEARCH.GROUP_BY.WITHDRAWAL_ID]: [CONST.SEARCH.TABLE_COLUMNS.GROUP_WITHDRAWAL_ID], [CONST.SEARCH.GROUP_BY.CATEGORY]: [CONST.SEARCH.TABLE_COLUMNS.GROUP_CATEGORY], [CONST.SEARCH.GROUP_BY.MERCHANT]: [CONST.SEARCH.TABLE_COLUMNS.GROUP_MERCHANT], [CONST.SEARCH.GROUP_BY.TAG]: [CONST.SEARCH.TABLE_COLUMNS.GROUP_TAG], @@ -5101,7 +5101,7 @@ function getColumnsToShow({ } // If the user has set custom columns, use their order then add required columns - const requiredColumns = new Set([CONST.SEARCH.TABLE_COLUMNS.AVATAR, CONST.SEARCH.TABLE_COLUMNS.TOTAL]); + const requiredColumns = new Set([CONST.SEARCH.TABLE_COLUMNS.TOTAL]); const result: SearchColumnType[] = []; for (const col of requiredColumns) { @@ -5263,9 +5263,7 @@ function getColumnsToShow({ // Don't return early — fall through to updateColumns to detect empty columns customResult = result; } else { - // Search page: prepend AVATAR, TYPE - result.push(CONST.SEARCH.TABLE_COLUMNS.AVATAR); - addedColumns.add(CONST.SEARCH.TABLE_COLUMNS.AVATAR); + // Search page: prepend TYPE result.push(CONST.SEARCH.TABLE_COLUMNS.TYPE); addedColumns.add(CONST.SEARCH.TABLE_COLUMNS.TYPE); diff --git a/src/pages/Search/SearchColumnsPage.tsx b/src/pages/Search/SearchColumnsPage.tsx index 63a6dcba8a8c..98dea9a6b731 100644 --- a/src/pages/Search/SearchColumnsPage.tsx +++ b/src/pages/Search/SearchColumnsPage.tsx @@ -26,7 +26,6 @@ function SearchColumnsPage() { // We need at least one element with flex1 in the table to ensure the table looks good in the UI, so we don't allow removing the total columns // since it makes sense for them to show up in an expense management App and it fixes the layout issues. const requiredColumns = new Set([ - CONST.SEARCH.TABLE_COLUMNS.AVATAR, CONST.SEARCH.TABLE_COLUMNS.TOTAL_AMOUNT, CONST.SEARCH.TABLE_COLUMNS.TOTAL, CONST.SEARCH.TABLE_COLUMNS.GROUP_CARD, From be75ecd2df7529b59fe247ff6af2dcbe3e5e27d3 Mon Sep 17 00:00:00 2001 From: Mukher Date: Mon, 4 May 2026 13:56:39 +0500 Subject: [PATCH 4/4] [TESTS] updated replaced hardcoded avatar column with dynamic one test --- tests/unit/Search/SearchUIUtilsTest.ts | 28 ++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/tests/unit/Search/SearchUIUtilsTest.ts b/tests/unit/Search/SearchUIUtilsTest.ts index 33f7ae43d3d2..a59adcf88d43 100644 --- a/tests/unit/Search/SearchUIUtilsTest.ts +++ b/tests/unit/Search/SearchUIUtilsTest.ts @@ -7741,8 +7741,6 @@ describe('SearchUIUtils', () => { const visibleColumns = [CONST.SEARCH.TABLE_COLUMNS.DATE, CONST.SEARCH.TABLE_COLUMNS.STATUS, CONST.SEARCH.TABLE_COLUMNS.TITLE, CONST.SEARCH.TABLE_COLUMNS.TOTAL]; expect(SearchUIUtils.getColumnsToShow({currentAccountID: 1, data: [], visibleColumns, type: CONST.SEARCH.DATA_TYPES.EXPENSE_REPORT})).toEqual([ - // Avatar should always be visible - CONST.SEARCH.TABLE_COLUMNS.AVATAR, CONST.SEARCH.TABLE_COLUMNS.DATE, CONST.SEARCH.TABLE_COLUMNS.STATUS, CONST.SEARCH.TABLE_COLUMNS.TITLE, @@ -7750,6 +7748,32 @@ describe('SearchUIUtils', () => { ]); }); + test('Should include Avatar when user keeps it in visible columns for expense reports', () => { + const visibleColumns = [CONST.SEARCH.TABLE_COLUMNS.AVATAR, CONST.SEARCH.TABLE_COLUMNS.DATE, CONST.SEARCH.TABLE_COLUMNS.TOTAL]; + + expect(SearchUIUtils.getColumnsToShow({currentAccountID: 1, data: [], visibleColumns, type: CONST.SEARCH.DATA_TYPES.EXPENSE_REPORT})).toEqual([ + CONST.SEARCH.TABLE_COLUMNS.AVATAR, + CONST.SEARCH.TABLE_COLUMNS.DATE, + CONST.SEARCH.TABLE_COLUMNS.TOTAL, + ]); + }); + + test('Should omit Avatar but keep Total when Avatar is toggled off for expense reports', () => { + const visibleColumns = [CONST.SEARCH.TABLE_COLUMNS.DATE, CONST.SEARCH.TABLE_COLUMNS.STATUS]; + + const result = SearchUIUtils.getColumnsToShow({currentAccountID: 1, data: [], visibleColumns, type: CONST.SEARCH.DATA_TYPES.EXPENSE_REPORT}); + expect(result).not.toContain(CONST.SEARCH.TABLE_COLUMNS.AVATAR); + expect(result).toContain(CONST.SEARCH.TABLE_COLUMNS.TOTAL); + }); + + test('Should not force Avatar for group-by:from when toggled off', () => { + const visibleColumns = [CONST.SEARCH.TABLE_COLUMNS.GROUP_FROM, CONST.SEARCH.TABLE_COLUMNS.GROUP_TOTAL]; + + const result = SearchUIUtils.getColumnsToShow({currentAccountID: 1, data: [], visibleColumns, groupBy: CONST.SEARCH.GROUP_BY.FROM}); + expect(result).not.toContain(CONST.SEARCH.TABLE_COLUMNS.AVATAR); + expect(result).toContain(CONST.SEARCH.TABLE_COLUMNS.GROUP_FROM); + }); + test('Should hide To for strict default expense columns', () => { const baseTransaction = searchResults.data[`transactions_${transactionID}`]; const tx = {