From a23d375dffaf59bf268b04ef83dc41afef13f702 Mon Sep 17 00:00:00 2001 From: Abdelhafidh Belalia <16493223+s77rt@users.noreply.github.com> Date: Mon, 14 Jul 2025 19:48:37 +0100 Subject: [PATCH 01/11] added BankWithdrawalListItemHeader --- src/CONST/index.ts | 29 +++++++ .../Search/BankWithdrawalListItemHeader.tsx | 87 +++++++++++++++++++ src/components/SelectionList/types.ts | 4 +- src/languages/en.ts | 1 + src/types/onyx/SearchResults.ts | 24 +++-- 5 files changed, 137 insertions(+), 8 deletions(-) create mode 100644 src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 576975c9d20f..82de888e3f0b 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -5220,6 +5220,35 @@ const CONST = { USAA: 'usaa', }, + /** + * Bank account names (user friendly) + */ + get BANK_NAMES_USER_FRIENDLY() { + return { + [this.BANK_NAMES.EXPENSIFY]: 'Expensify', + [this.BANK_NAMES.AMERICAN_EXPRESS]: 'American Express', + [this.BANK_NAMES.BANK_OF_AMERICA]: 'Bank of America', + [this.BANK_NAMES.BB_T]: 'Truist', + [this.BANK_NAMES.CAPITAL_ONE]: 'Capital One', + [this.BANK_NAMES.CHASE]: 'Chase', + [this.BANK_NAMES.CHARLES_SCHWAB]: 'Charles Schwab', + [this.BANK_NAMES.CITIBANK]: 'Citibank', + [this.BANK_NAMES.CITIZENS_BANK]: 'Citizens', + [this.BANK_NAMES.DISCOVER]: 'Discover', + [this.BANK_NAMES.FIDELITY]: 'Fidelity', + [this.BANK_NAMES.GENERIC_BANK]: 'Bank', + [this.BANK_NAMES.HUNTINGTON_BANK]: 'Huntington', + [this.BANK_NAMES.HUNTINGTON_NATIONAL]: 'Huntington National', + [this.BANK_NAMES.NAVY_FEDERAL_CREDIT_UNION]: 'Navy Federal Credit Union', + [this.BANK_NAMES.PNC]: 'PNC', + [this.BANK_NAMES.REGIONS_BANK]: 'Regions', + [this.BANK_NAMES.SUNTRUST]: 'SunTrust', + [this.BANK_NAMES.TD_BANK]: 'TD Bank', + [this.BANK_NAMES.US_BANK]: 'U.S. Bank', + [this.BANK_NAMES.USAA]: 'USAA', + }; + }, + /** * Constants for maxToRenderPerBatch parameter that is used for FlatList or SectionList. This controls the amount of items rendered per batch, which is the next chunk of items * rendered on every scroll. diff --git a/src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx b/src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx new file mode 100644 index 000000000000..857bdce809d4 --- /dev/null +++ b/src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx @@ -0,0 +1,87 @@ +import React from 'react'; +import {View} from 'react-native'; +import Checkbox from '@components/Checkbox'; +import Icon from '@components/Icon'; +import getBankIcon from '@components/Icon/BankIcons'; +import type {ListItem, TransactionBankWithdrawalGroupListItemType} from '@components/SelectionList/types'; +import TextWithTooltip from '@components/TextWithTooltip'; +import useLocalize from '@hooks/useLocalize'; +import useThemeStyles from '@hooks/useThemeStyles'; +import DateUtils from '@libs/DateUtils'; +import CONST from '@src/CONST'; + +type BankWithdrawalListItemHeaderProps = { + /** The bank currently being looked at */ + bank: TransactionBankWithdrawalGroupListItemType; + + /** Callback to fire when a checkbox is pressed */ + onCheckboxPress?: (item: TItem) => void; + + /** Whether this section items disabled for selection */ + isDisabled?: boolean | null; + + /** Whether the item is hovered */ + isHovered?: boolean; + + /** Whether the item is focused */ + isFocused?: boolean; + + /** Whether selecting multiple transactions at once is allowed */ + canSelectMultiple: boolean | undefined; +}; + +function BankWithdrawalListItemHeader({bank: bankItem, onCheckboxPress, isDisabled, canSelectMultiple}: BankWithdrawalListItemHeaderProps) { + const styles = useThemeStyles(); + const {translate} = useLocalize(); + + const {icon, iconSize, iconStyles} = getBankIcon({bankName: bankItem.bankName, styles}); + const formattedBankName = CONST.BANK_NAMES_USER_FRIENDLY[bankItem.bankName]; + const formattedWithdrawalDate = DateUtils.formatWithUTCTimeZone( + bankItem.withdrawalDate, + DateUtils.doesDateBelongToAPastYear(bankItem.withdrawalDate) ? CONST.DATE.MONTH_DAY_YEAR_ABBR_FORMAT : CONST.DATE.MONTH_DAY_ABBR_FORMAT, + ); + + // s77rt add total cell, action cell and collapse/expand button + + return ( + + + + {!!canSelectMultiple && ( + onCheckboxPress?.(bankItem as unknown as TItem)} + isChecked={bankItem.isSelected} + disabled={!!isDisabled || bankItem.isDisabledCheckbox} + accessibilityLabel={translate('common.select')} + /> + )} + + + + + + + + + + + + + + ); +} + +BankWithdrawalListItemHeader.displayName = 'BankWithdrawalListItemHeader'; + +export default BankWithdrawalListItemHeader; diff --git a/src/components/SelectionList/types.ts b/src/components/SelectionList/types.ts index 75cdcf1855cf..7b9bc28e723a 100644 --- a/src/components/SelectionList/types.ts +++ b/src/components/SelectionList/types.ts @@ -25,7 +25,7 @@ import type CONST from '@src/CONST'; import type {Policy, Report, TransactionViolation} from '@src/types/onyx'; import type {Attendee, SplitExpense} from '@src/types/onyx/IOU'; import type {Errors, Icon, PendingAction} from '@src/types/onyx/OnyxCommon'; -import type {SearchBank, SearchCard, SearchPersonalDetails, SearchReport, SearchReportAction, SearchTask, SearchTransaction} from '@src/types/onyx/SearchResults'; +import type {SearchBankWithdrawal, SearchCard, SearchPersonalDetails, SearchReport, SearchReportAction, SearchTask, SearchTransaction} from '@src/types/onyx/SearchResults'; import type {ReceiptErrors} from '@src/types/onyx/Transaction'; import type Transaction from '@src/types/onyx/Transaction'; import type ChildrenProps from '@src/types/utils/ChildrenProps'; @@ -339,7 +339,7 @@ type TransactionMemberGroupListItemType = TransactionGroupListItemType & {groupe type TransactionCardGroupListItemType = TransactionGroupListItemType & {groupedBy: typeof CONST.SEARCH.GROUP_BY.CARDS} & SearchPersonalDetails & SearchCard; -type TransactionBankWithdrawalGroupListItemType = TransactionGroupListItemType & {groupedBy: typeof CONST.SEARCH.GROUP_BY.BANK_WITHDRAWAL} & SearchPersonalDetails & SearchBank; +type TransactionBankWithdrawalGroupListItemType = TransactionGroupListItemType & {groupedBy: typeof CONST.SEARCH.GROUP_BY.BANK_WITHDRAWAL} & SearchPersonalDetails & SearchBankWithdrawal; type ListItemProps = CommonListItemProps & { /** The section list item */ diff --git a/src/languages/en.ts b/src/languages/en.ts index 26611708d320..97f56238784a 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -554,6 +554,7 @@ const translations = { network: 'Network', reportID: 'Report ID', longID: 'Long ID', + entryID: 'Entry ID', bankAccounts: 'Bank accounts', chooseFile: 'Choose file', chooseFiles: 'Choose files', diff --git a/src/types/onyx/SearchResults.ts b/src/types/onyx/SearchResults.ts index 379f22a49e97..0870f122b1be 100644 --- a/src/types/onyx/SearchResults.ts +++ b/src/types/onyx/SearchResults.ts @@ -6,6 +6,7 @@ import type TransactionListItem from '@components/SelectionList/Search/Transacti import type {ReportActionListItemType, TaskListItemType, TransactionGroupListItemType, TransactionListItemType} from '@components/SelectionList/types'; import type CONST from '@src/CONST'; import type ONYXKEYS from '@src/ONYXKEYS'; +import type {BankName} from './Bank'; import type * as OnyxCommon from './OnyxCommon'; import type {ACHAccount, ApprovalRule, ExpenseRule} from './Policy'; import type {PolicyEmployeeList} from './PolicyEmployee'; @@ -468,11 +469,20 @@ type SearchCard = { accountID: number; }; -/** Model of bank search result */ +/** Model of bank withdrawal search result */ // s77rt sync with BE -type SearchBank = { - /** string like 'Account ending in XXXX' */ - description?: string; +type SearchBankWithdrawal = { + /** The bank name */ + bankName: BankName; + + /** Last four Primary Account Number digits */ + lastFourPAN: string; + + /** Withdrawal date */ + withdrawalDate: string; + + /** Entry ID */ + entryID: string; }; /** Types of searchable transactions */ @@ -496,8 +506,10 @@ type SearchResults = { PrefixedRecord> & PrefixedRecord & PrefixedRecord & + // s77rt sync with BE PrefixedRecord & - Partial>> & + // s77rt sync with BE + Partial>> & PrefixedRecord & PrefixedRecord; @@ -523,5 +535,5 @@ export type { SearchReportAction, SearchPolicy, SearchCard, - SearchBank, + SearchBankWithdrawal, }; From 389543ed3a7b695b547f3ab425f645fb4d8f798f Mon Sep 17 00:00:00 2001 From: Abdelhafidh Belalia <16493223+s77rt@users.noreply.github.com> Date: Mon, 14 Jul 2025 19:55:56 +0100 Subject: [PATCH 02/11] use BankWithdrawalListItemHeader --- .../Search/BankWithdrawalListItemHeader.tsx | 35 +++++++++---------- .../Search/TransactionGroupListItem.tsx | 10 ++++-- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx b/src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx index 857bdce809d4..e8d8b008fd61 100644 --- a/src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx +++ b/src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx @@ -11,8 +11,8 @@ import DateUtils from '@libs/DateUtils'; import CONST from '@src/CONST'; type BankWithdrawalListItemHeaderProps = { - /** The bank currently being looked at */ - bank: TransactionBankWithdrawalGroupListItemType; + /** The bank withdrawal currently being looked at */ + bankWithdrawal: TransactionBankWithdrawalGroupListItemType; /** Callback to fire when a checkbox is pressed */ onCheckboxPress?: (item: TItem) => void; @@ -20,25 +20,24 @@ type BankWithdrawalListItemHeaderProps = { /** Whether this section items disabled for selection */ isDisabled?: boolean | null; - /** Whether the item is hovered */ - isHovered?: boolean; - - /** Whether the item is focused */ - isFocused?: boolean; - /** Whether selecting multiple transactions at once is allowed */ canSelectMultiple: boolean | undefined; }; -function BankWithdrawalListItemHeader({bank: bankItem, onCheckboxPress, isDisabled, canSelectMultiple}: BankWithdrawalListItemHeaderProps) { +function BankWithdrawalListItemHeader({ + bankWithdrawal: bankWithdrawalItem, + onCheckboxPress, + isDisabled, + canSelectMultiple, +}: BankWithdrawalListItemHeaderProps) { const styles = useThemeStyles(); const {translate} = useLocalize(); - const {icon, iconSize, iconStyles} = getBankIcon({bankName: bankItem.bankName, styles}); - const formattedBankName = CONST.BANK_NAMES_USER_FRIENDLY[bankItem.bankName]; + const {icon, iconSize, iconStyles} = getBankIcon({bankName: bankWithdrawalItem.bankName, styles}); + const formattedBankName = CONST.BANK_NAMES_USER_FRIENDLY[bankWithdrawalItem.bankName]; const formattedWithdrawalDate = DateUtils.formatWithUTCTimeZone( - bankItem.withdrawalDate, - DateUtils.doesDateBelongToAPastYear(bankItem.withdrawalDate) ? CONST.DATE.MONTH_DAY_YEAR_ABBR_FORMAT : CONST.DATE.MONTH_DAY_ABBR_FORMAT, + bankWithdrawalItem.withdrawalDate, + DateUtils.doesDateBelongToAPastYear(bankWithdrawalItem.withdrawalDate) ? CONST.DATE.MONTH_DAY_YEAR_ABBR_FORMAT : CONST.DATE.MONTH_DAY_ABBR_FORMAT, ); // s77rt add total cell, action cell and collapse/expand button @@ -49,9 +48,9 @@ function BankWithdrawalListItemHeader({bank: bankItem, o {!!canSelectMultiple && ( onCheckboxPress?.(bankItem as unknown as TItem)} - isChecked={bankItem.isSelected} - disabled={!!isDisabled || bankItem.isDisabledCheckbox} + onPress={() => onCheckboxPress?.(bankWithdrawalItem as unknown as TItem)} + isChecked={bankWithdrawalItem.isSelected} + disabled={!!isDisabled || bankWithdrawalItem.isDisabledCheckbox} accessibilityLabel={translate('common.select')} /> )} @@ -64,11 +63,11 @@ function BankWithdrawalListItemHeader({bank: bankItem, o /> diff --git a/src/components/SelectionList/Search/TransactionGroupListItem.tsx b/src/components/SelectionList/Search/TransactionGroupListItem.tsx index 21c6b74223a8..7136cb14a89c 100644 --- a/src/components/SelectionList/Search/TransactionGroupListItem.tsx +++ b/src/components/SelectionList/Search/TransactionGroupListItem.tsx @@ -6,6 +6,7 @@ import type {SearchGroupBy} from '@components/Search/types'; import BaseListItem from '@components/SelectionList/BaseListItem'; import type { ListItem, + TransactionBankWithdrawalGroupListItemType, TransactionCardGroupListItemType, TransactionGroupListItemProps, TransactionGroupListItemType, @@ -30,6 +31,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type {Policy} from '@src/types/onyx'; import {getEmptyObject} from '@src/types/utils/EmptyObject'; +import BankWithdrawalListItemHeader from './BankWithdrawalListItemHeader'; import CardListItemHeader from './CardListItemHeader'; import MemberListItemHeader from './MemberListItemHeader'; import ReportListItemHeader from './ReportListItemHeader'; @@ -149,8 +151,12 @@ function TransactionGroupListItem({ /> ), [CONST.SEARCH.GROUP_BY.BANK_WITHDRAWAL]: ( - // s77rt BankWithdrawalListItemHeader - + ), }; From 696d78b954eb9db4994e89a3a882e3e47b7e1674 Mon Sep 17 00:00:00 2001 From: Abdelhafidh Belalia <16493223+s77rt@users.noreply.github.com> Date: Mon, 14 Jul 2025 20:12:13 +0100 Subject: [PATCH 03/11] fix type --- src/components/SelectionList/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/SelectionList/types.ts b/src/components/SelectionList/types.ts index 909c6cfed21b..14d47f7cb2fc 100644 --- a/src/components/SelectionList/types.ts +++ b/src/components/SelectionList/types.ts @@ -339,7 +339,7 @@ type TransactionMemberGroupListItemType = TransactionGroupListItemType & {groupe type TransactionCardGroupListItemType = TransactionGroupListItemType & {groupedBy: typeof CONST.SEARCH.GROUP_BY.CARDS} & SearchPersonalDetails & SearchCard; -type TransactionBankWithdrawalGroupListItemType = TransactionGroupListItemType & {groupedBy: typeof CONST.SEARCH.GROUP_BY.BANK_WITHDRAWAL} & SearchPersonalDetails & SearchBankWithdrawal; +type TransactionBankWithdrawalGroupListItemType = TransactionGroupListItemType & {groupedBy: typeof CONST.SEARCH.GROUP_BY.BANK_WITHDRAWAL} & SearchBankWithdrawal; type ListItemProps = CommonListItemProps & { /** The section list item */ From aff8263bb75431553e8818c398c6b87687889c69 Mon Sep 17 00:00:00 2001 From: Abdelhafidh Belalia <16493223+s77rt@users.noreply.github.com> Date: Mon, 14 Jul 2025 21:11:56 +0100 Subject: [PATCH 04/11] update last four format --- .../SelectionList/Search/BankWithdrawalListItemHeader.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx b/src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx index e8d8b008fd61..c60fe81c5d92 100644 --- a/src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx +++ b/src/components/SelectionList/Search/BankWithdrawalListItemHeader.tsx @@ -63,7 +63,7 @@ function BankWithdrawalListItemHeader({ /> Date: Mon, 18 Aug 2025 11:31:39 +0100 Subject: [PATCH 05/11] implement getWithdrawalIDSections and getSortedWithdrawalIDData --- src/components/SelectionList/types.ts | 2 +- src/libs/SearchUIUtils.ts | 31 +++++++++++++++++++-------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/components/SelectionList/types.ts b/src/components/SelectionList/types.ts index 4fb40c19227f..7a6a235ef992 100644 --- a/src/components/SelectionList/types.ts +++ b/src/components/SelectionList/types.ts @@ -354,7 +354,7 @@ type TransactionMemberGroupListItemType = TransactionGroupListItemType & {groupe type TransactionCardGroupListItemType = TransactionGroupListItemType & {groupedBy: typeof CONST.SEARCH.GROUP_BY.CARD} & SearchPersonalDetails & SearchCardGroup; -type TransactionWithdrawalIDGroupListItemType = TransactionGroupListItemType & {groupedBy: typeof CONST.SEARCH.GROUP_BY.WITHDRAWAL_ID} & SearchPersonalDetails & SearchWithdrawalIDGroup; +type TransactionWithdrawalIDGroupListItemType = TransactionGroupListItemType & {groupedBy: typeof CONST.SEARCH.GROUP_BY.WITHDRAWAL_ID} & SearchWithdrawalIDGroup; type ListItemProps = CommonListItemProps & { /** The section list item */ diff --git a/src/libs/SearchUIUtils.ts b/src/libs/SearchUIUtils.ts index 06c5c90428f8..6bcaf01a394a 100644 --- a/src/libs/SearchUIUtils.ts +++ b/src/libs/SearchUIUtils.ts @@ -54,6 +54,7 @@ import type { SearchTask, SearchTransaction, SearchTransactionAction, + SearchWithdrawalIDGroup, } from '@src/types/onyx/SearchResults'; import type IconAsset from '@src/types/utils/IconAsset'; import {canApproveIOU, canIOUBePaid, canSubmitReport} from './actions/IOU'; @@ -1392,8 +1393,21 @@ function getCardSections(data: OnyxTypes.SearchResults['data']): TransactionCard * Do not use directly, use only via `getSections()` facade. */ function getWithdrawalIDSections(data: OnyxTypes.SearchResults['data']): TransactionWithdrawalIDGroupListItemType[] { - // Will be implemented as part of https://github.com/Expensify/App/pull/66078 - return data ? [] : []; + const withdrawalIDSections: Record = {}; + + for (const key in data) { + if (isGroupEntry(key)) { + const withdrawalIDGroup = data[key] as SearchWithdrawalIDGroup; + + withdrawalIDSections[key] = { + groupedBy: CONST.SEARCH.GROUP_BY.WITHDRAWAL_ID, + transactions: [], + ...withdrawalIDGroup, + }; + } + } + + return Object.values(withdrawalIDSections); } /** @@ -1481,7 +1495,7 @@ function getSortedSections( case CONST.SEARCH.GROUP_BY.CARD: return getSortedCardData(data as TransactionCardGroupListItemType[], localeCompare); case CONST.SEARCH.GROUP_BY.WITHDRAWAL_ID: - return getSortedWithdrawalIDData(data as TransactionWithdrawalIDGroupListItemType[]); + return getSortedWithdrawalIDData(data as TransactionWithdrawalIDGroupListItemType[], localeCompare); } } @@ -1576,7 +1590,7 @@ function getSortedReportData(data: TransactionReportGroupListItemType[], localeC /** * @private - * Sorts report sections based on a specified column and sort order. + * Sorts member sections based on a specified column and sort order. */ function getSortedMemberData(data: TransactionMemberGroupListItemType[], localeCompare: LocaleContextProps['localeCompare']) { return data.sort((a, b) => localeCompare(a.displayName ?? a.login ?? '', b.displayName ?? b.login ?? '')); @@ -1584,7 +1598,7 @@ function getSortedMemberData(data: TransactionMemberGroupListItemType[], localeC /** * @private - * Sorts report sections based on a specified column and sort order. + * Sorts card sections based on a specified column and sort order. */ function getSortedCardData(data: TransactionCardGroupListItemType[], localeCompare: LocaleContextProps['localeCompare']) { return data.sort((a, b) => localeCompare(a.displayName ?? a.login ?? '', b.displayName ?? b.login ?? '')); @@ -1592,11 +1606,10 @@ function getSortedCardData(data: TransactionCardGroupListItemType[], localeCompa /** * @private - * Sorts report sections based on a specified column and sort order. + * Sorts withdrawal ID sections based on a specified column and sort order. */ -function getSortedWithdrawalIDData(data: TransactionWithdrawalIDGroupListItemType[]) { - // Will be implemented as part of https://github.com/Expensify/App/pull/66078 - return data ? [] : []; +function getSortedWithdrawalIDData(data: TransactionWithdrawalIDGroupListItemType[], localeCompare: LocaleContextProps['localeCompare']) { + return data.sort((a, b) => localeCompare(b.debitPosted, a.debitPosted)); } /** From e60ae852816d9d1710c8fd0ad5240648964a1c53 Mon Sep 17 00:00:00 2001 From: Abdelhafidh Belalia <16493223+s77rt@users.noreply.github.com> Date: Mon, 18 Aug 2025 12:38:49 +0100 Subject: [PATCH 06/11] use bankName --- .../SelectionList/Search/WithdrawalIDListItemHeader.tsx | 4 ++-- src/types/onyx/SearchResults.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/SelectionList/Search/WithdrawalIDListItemHeader.tsx b/src/components/SelectionList/Search/WithdrawalIDListItemHeader.tsx index da9c75f31b0a..ba5d648c767b 100644 --- a/src/components/SelectionList/Search/WithdrawalIDListItemHeader.tsx +++ b/src/components/SelectionList/Search/WithdrawalIDListItemHeader.tsx @@ -28,8 +28,8 @@ function WithdrawalIDListItemHeader({withdrawalID: withd const styles = useThemeStyles(); const {translate} = useLocalize(); - const {icon, iconSize, iconStyles} = getBankIcon({bankName: withdrawalIDItem.addressName, styles}); - const formattedBankName = CONST.BANK_NAMES_USER_FRIENDLY[withdrawalIDItem.addressName]; + const {icon, iconSize, iconStyles} = getBankIcon({bankName: withdrawalIDItem.bankName, styles}); + const formattedBankName = CONST.BANK_NAMES_USER_FRIENDLY[withdrawalIDItem.bankName]; const formattedWithdrawalDate = DateUtils.formatWithUTCTimeZone( withdrawalIDItem.debitPosted, DateUtils.doesDateBelongToAPastYear(withdrawalIDItem.debitPosted) ? CONST.DATE.MONTH_DAY_YEAR_ABBR_FORMAT : CONST.DATE.MONTH_DAY_ABBR_FORMAT, diff --git a/src/types/onyx/SearchResults.ts b/src/types/onyx/SearchResults.ts index ef9d84b03799..89ccfd01465a 100644 --- a/src/types/onyx/SearchResults.ts +++ b/src/types/onyx/SearchResults.ts @@ -528,7 +528,7 @@ type SearchWithdrawalIDGroup = { accountNumber: string; /** Bank name */ - addressName: BankName; + bankName: BankName; /** When the withdrawal completed */ debitPosted: string; From 8fae8a500946dcb9fe72793edb93acfd30296aa2 Mon Sep 17 00:00:00 2001 From: Abdelhafidh Belalia <16493223+s77rt@users.noreply.github.com> Date: Mon, 18 Aug 2025 13:12:05 +0100 Subject: [PATCH 07/11] update WithdrawalIDListItemHeader --- src/CONST/index.ts | 1 + .../MoneyRequestReportTableHeader.tsx | 1 + src/components/Search/index.tsx | 13 +++++- .../Search/TransactionGroupListItem.tsx | 1 + .../Search/WithdrawalIDListItemHeader.tsx | 45 ++++++++++++++----- .../SelectionList/SearchTableHeader.tsx | 8 ++++ src/languages/en.ts | 1 + src/languages/es.ts | 2 + 8 files changed, 61 insertions(+), 11 deletions(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index c3d9ab6498b5..4207173761b5 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -6405,6 +6405,7 @@ const CONST = { ASSIGNEE: 'assignee', IN: 'in', CARD: 'card', + WITHDRAWAL_ID: 'withdrawalId', }, SYNTAX_OPERATORS: { AND: 'and', diff --git a/src/components/MoneyRequestReportView/MoneyRequestReportTableHeader.tsx b/src/components/MoneyRequestReportView/MoneyRequestReportTableHeader.tsx index e76a914f35cf..9b696a4d4211 100644 --- a/src/components/MoneyRequestReportView/MoneyRequestReportTableHeader.tsx +++ b/src/components/MoneyRequestReportView/MoneyRequestReportTableHeader.tsx @@ -31,6 +31,7 @@ const shouldShowColumnConfig: Record false, [CONST.SEARCH.TABLE_COLUMNS.ASSIGNEE]: () => false, [CONST.SEARCH.TABLE_COLUMNS.CARD]: () => false, + [CONST.SEARCH.TABLE_COLUMNS.WITHDRAWAL_ID]: () => false, }; const columnConfig: ColumnConfig[] = [ diff --git a/src/components/Search/index.tsx b/src/components/Search/index.tsx index fa1660345f2f..f2635295f8b0 100644 --- a/src/components/Search/index.tsx +++ b/src/components/Search/index.tsx @@ -41,6 +41,7 @@ import { isTransactionGroupListItemType, isTransactionListItemType, isTransactionMemberGroupListItemType, + isTransactionWithdrawalIDGroupListItemType, shouldShowEmptyState, shouldShowYear as shouldShowYearUtil, } from '@libs/SearchUIUtils'; @@ -557,6 +558,10 @@ function Search({queryJSON, searchResults, onSearchListScroll, contentContainerS return; } + if (isTransactionWithdrawalIDGroupListItemType(item)) { + return; + } + const isFromSelfDM = item.reportID === CONST.REPORT.UNREPORTED_REPORT_ID; const isTransactionItem = isTransactionListItemType(item); @@ -628,7 +633,13 @@ function Search({queryJSON, searchResults, onSearchListScroll, contentContainerS const isChat = type === CONST.SEARCH.DATA_TYPES.CHAT; const isTask = type === CONST.SEARCH.DATA_TYPES.TASK; - const canSelectMultiple = !isChat && !isTask && (!isSmallScreenWidth || isMobileSelectionModeEnabled) && groupBy !== CONST.SEARCH.GROUP_BY.FROM && groupBy !== CONST.SEARCH.GROUP_BY.CARD; + const canSelectMultiple = + !isChat && + !isTask && + (!isSmallScreenWidth || isMobileSelectionModeEnabled) && + groupBy !== CONST.SEARCH.GROUP_BY.FROM && + groupBy !== CONST.SEARCH.GROUP_BY.CARD && + groupBy !== CONST.SEARCH.GROUP_BY.WITHDRAWAL_ID; const ListItem = getListItem(type, status, groupBy); const sortedSelectedData = useMemo( () => diff --git a/src/components/SelectionList/Search/TransactionGroupListItem.tsx b/src/components/SelectionList/Search/TransactionGroupListItem.tsx index c592dc5389a0..4de380a67927 100644 --- a/src/components/SelectionList/Search/TransactionGroupListItem.tsx +++ b/src/components/SelectionList/Search/TransactionGroupListItem.tsx @@ -142,6 +142,7 @@ function TransactionGroupListItem({ [CONST.SEARCH.GROUP_BY.WITHDRAWAL_ID]: ( = { /** The withdrawal ID currently being looked at */ withdrawalID: TransactionWithdrawalIDGroupListItemType; + /** Callback to fire when the item is pressed */ + onSelectRow: (item: TItem) => void; + /** Callback to fire when a checkbox is pressed */ onCheckboxPress?: (item: TItem) => void; @@ -24,18 +31,24 @@ type WithdrawalIDListItemHeaderProps = { canSelectMultiple: boolean | undefined; }; -function WithdrawalIDListItemHeader({withdrawalID: withdrawalIDItem, onCheckboxPress, isDisabled, canSelectMultiple}: WithdrawalIDListItemHeaderProps) { +function WithdrawalIDListItemHeader({ + withdrawalID: withdrawalIDItem, + onSelectRow, + onCheckboxPress, + isDisabled, + canSelectMultiple, +}: WithdrawalIDListItemHeaderProps) { const styles = useThemeStyles(); + const StyleUtils = useStyleUtils(); const {translate} = useLocalize(); - + const {isLargeScreenWidth} = useResponsiveLayout(); const {icon, iconSize, iconStyles} = getBankIcon({bankName: withdrawalIDItem.bankName, styles}); const formattedBankName = CONST.BANK_NAMES_USER_FRIENDLY[withdrawalIDItem.bankName]; const formattedWithdrawalDate = DateUtils.formatWithUTCTimeZone( withdrawalIDItem.debitPosted, DateUtils.doesDateBelongToAPastYear(withdrawalIDItem.debitPosted) ? CONST.DATE.MONTH_DAY_YEAR_ABBR_FORMAT : CONST.DATE.MONTH_DAY_ABBR_FORMAT, ); - - // s77rt add total cell, action cell and collapse/expand button + const shouldShowAction = isLargeScreenWidth; return ( @@ -49,16 +62,16 @@ function WithdrawalIDListItemHeader({withdrawalID: withd accessibilityLabel={translate('common.select')} /> )} - + - + ({withdrawalID: withd - - - + + + + {shouldShowAction && ( + + onSelectRow(withdrawalIDItem as unknown as TItem)} + isSelected={withdrawalIDItem.isSelected} + /> + + )} ); diff --git a/src/components/SelectionList/SearchTableHeader.tsx b/src/components/SelectionList/SearchTableHeader.tsx index b4cac77b70da..e6e9d4284ffe 100644 --- a/src/components/SelectionList/SearchTableHeader.tsx +++ b/src/components/SelectionList/SearchTableHeader.tsx @@ -34,6 +34,7 @@ const shouldShowColumnConfig: Record true, [CONST.SEARCH.TABLE_COLUMNS.IN]: () => true, [CONST.SEARCH.TABLE_COLUMNS.CARD]: () => false, + [CONST.SEARCH.TABLE_COLUMNS.WITHDRAWAL_ID]: () => false, // This column is never displayed on Search [CONST.REPORT.TRANSACTION_LIST.COLUMNS.COMMENTS]: () => false, }; @@ -81,6 +82,10 @@ const expenseHeaders: SearchColumnConfig[] = [ columnName: CONST.SEARCH.TABLE_COLUMNS.TAG, translationKey: 'common.tag', }, + { + columnName: CONST.SEARCH.TABLE_COLUMNS.WITHDRAWAL_ID, + translationKey: 'common.withdrawalID', + }, { columnName: CONST.SEARCH.TABLE_COLUMNS.TAX_AMOUNT, translationKey: 'common.tax', @@ -178,6 +183,9 @@ function SearchTableHeader({ if (groupBy === CONST.SEARCH.GROUP_BY.CARD) { return columnName === CONST.SEARCH.TABLE_COLUMNS.CARD || columnName === CONST.SEARCH.TABLE_COLUMNS.TOTAL_AMOUNT || columnName === CONST.SEARCH.TABLE_COLUMNS.ACTION; } + if (groupBy === CONST.SEARCH.GROUP_BY.WITHDRAWAL_ID) { + return columnName === CONST.SEARCH.TABLE_COLUMNS.WITHDRAWAL_ID || columnName === CONST.SEARCH.TABLE_COLUMNS.TOTAL_AMOUNT || columnName === CONST.SEARCH.TABLE_COLUMNS.ACTION; + } const shouldShowFun = shouldShowColumnConfig[columnName]; return shouldShowFun(data, metadata); diff --git a/src/languages/en.ts b/src/languages/en.ts index 828c60d35a1b..7df456ed9d3e 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -578,6 +578,7 @@ const translations = { reportID: 'Report ID', longID: 'Long ID', entryID: 'Entry ID', + withdrawalID: 'Withdrawal ID', bankAccounts: 'Bank accounts', chooseFile: 'Choose file', chooseFiles: 'Choose files', diff --git a/src/languages/es.ts b/src/languages/es.ts index 53f4cfe8f043..85f0adc07b61 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -569,6 +569,8 @@ const translations = { network: 'La red', reportID: 'ID del informe', longID: 'ID largo', + entryID: 'ID de la entrada', + withdrawalID: 'ID de retiro', bankAccounts: 'Cuentas bancarias', chooseFile: 'Elegir archivo', chooseFiles: 'Elegir archivos', From 1834dfacb4d215c0c88daf9b490c228ce9255f3b Mon Sep 17 00:00:00 2001 From: Abdelhafidh Belalia <16493223+s77rt@users.noreply.github.com> Date: Wed, 20 Aug 2025 00:24:17 +0100 Subject: [PATCH 08/11] translate --- src/languages/de.ts | 2 ++ src/languages/fr.ts | 2 ++ src/languages/it.ts | 2 ++ src/languages/ja.ts | 2 ++ src/languages/nl.ts | 2 ++ src/languages/pl.ts | 2 ++ src/languages/pt-BR.ts | 2 ++ src/languages/zh-hans.ts | 2 ++ 8 files changed, 16 insertions(+) diff --git a/src/languages/de.ts b/src/languages/de.ts index 24075db4e304..fd06b2535678 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -587,6 +587,8 @@ const translations = { network: 'Netzwerk', reportID: 'Berichts-ID', longID: 'Lange ID', + entryID: 'Beitrags-ID', + withdrawalID: 'Auszahlungs-ID', bankAccounts: 'Bankkonten', chooseFile: 'Datei auswählen', chooseFiles: 'Dateien auswählen', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 44204f4c8b12..b00c52e343ef 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -587,6 +587,8 @@ const translations = { network: 'Réseau', reportID: 'ID du rapport', longID: 'ID long', + entryID: "ID d'entrée", + withdrawalID: 'ID de retrait', bankAccounts: 'Comptes bancaires', chooseFile: 'Choisir un fichier', chooseFiles: 'Choisir des fichiers', diff --git a/src/languages/it.ts b/src/languages/it.ts index da0c3fd5da1a..42b1b8d96204 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -587,6 +587,8 @@ const translations = { network: 'Rete', reportID: 'ID Rapporto', longID: 'ID lungo', + entryID: 'ID di ingresso', + withdrawalID: 'ID di prelievo', bankAccounts: 'Conti bancari', chooseFile: 'Scegli file', chooseFiles: 'Scegli file', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 3a839d07010c..5f1f9bb2b90a 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -587,6 +587,8 @@ const translations = { network: 'ネットワーク', reportID: 'レポートID', longID: 'Long ID', + entryID: 'エントリーID', + withdrawalID: '出金ID', bankAccounts: '銀行口座', chooseFile: 'ファイルを選択', chooseFiles: 'ファイルを選択', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 9f9dc1f9b1ac..66114508b391 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -587,6 +587,8 @@ const translations = { network: 'Netwerk', reportID: 'Rapport-ID', longID: 'Lang ID', + entryID: 'Toegangs-ID', + withdrawalID: 'Opname-ID', bankAccounts: 'Bankrekeningen', chooseFile: 'Bestand kiezen', chooseFiles: 'Bestanden kiezen', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 7bbd38eb0e91..a47e5161b934 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -587,6 +587,8 @@ const translations = { network: 'Sieć', reportID: 'ID raportu', longID: 'Długi identyfikator', + entryID: 'Identyfikator wpisu', + withdrawalID: 'Identyfikator wypłaty', bankAccounts: 'Konta bankowe', chooseFile: 'Wybierz plik', chooseFiles: 'Wybierz pliki', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 344b3bd485f2..c239a94ed558 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -588,6 +588,8 @@ const translations = { network: 'Network', reportID: 'ID do Relatório', longID: 'ID longo', + entryID: 'ID de entrada', + withdrawalID: 'ID de retirada', bankAccounts: 'Contas bancárias', chooseFile: 'Escolher arquivo', chooseFiles: 'Escolher arquivos', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 5e0f238759f2..445e51371f1e 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -587,6 +587,8 @@ const translations = { network: '网络', reportID: '报告 ID', longID: 'Long ID', + entryID: '条目 ID', + withdrawalID: '提现ID', bankAccounts: '银行账户', chooseFile: '选择文件', chooseFiles: '选择文件', From 24ad9568521cbf731cbfb3bf70c38ab1c1d9a9b2 Mon Sep 17 00:00:00 2001 From: Abdelhafidh Belalia <16493223+s77rt@users.noreply.github.com> Date: Wed, 20 Aug 2025 01:09:57 +0100 Subject: [PATCH 09/11] add unit tests --- tests/unit/Search/SearchUIUtilsTest.ts | 122 +++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/tests/unit/Search/SearchUIUtilsTest.ts b/tests/unit/Search/SearchUIUtilsTest.ts index 08d44333a777..6103a82d3404 100644 --- a/tests/unit/Search/SearchUIUtilsTest.ts +++ b/tests/unit/Search/SearchUIUtilsTest.ts @@ -8,6 +8,7 @@ import type { TransactionListItemType, TransactionMemberGroupListItemType, TransactionReportGroupListItemType, + TransactionWithdrawalIDGroupListItemType, } from '@components/SelectionList/types'; import * as Expensicons from '@src/components/Icon/Expensicons'; import CONST from '@src/CONST'; @@ -41,6 +42,10 @@ const transactionID3 = '3'; const transactionID4 = '4'; const cardID = 20202020; const cardID2 = 30303030; +const entryID = 5; +const entryID2 = 6; +const accountNumber = 'XXXXXXXX6789'; +const accountNumber2 = 'XXXXXXXX5544'; const report1 = { accountID: adminAccountID, @@ -551,6 +556,46 @@ const searchResultsGroupByCard: OnyxTypes.SearchResults = { }, }; +const searchResultsGroupByWithdrawalID: OnyxTypes.SearchResults = { + data: { + personalDetailsList: {}, + [`${CONST.SEARCH.GROUP_PREFIX}${entryID}` as const]: { + entryID, + accountNumber, + bankName: CONST.BANK_NAMES.CHASE, + debitPosted: '2025-08-12 17:11:22', + count: 4, + currency: 'USD', + total: 40, + }, + [`${CONST.SEARCH.GROUP_PREFIX}${cardID2}` as const]: { + entryID: entryID2, + accountNumber: accountNumber2, + bankName: CONST.BANK_NAMES.CITIBANK, + debitPosted: '2025-08-19 18:10:54', + count: 6, + currency: 'USD', + total: 20, + }, + }, + search: { + columnsToShow: { + shouldShowCategoryColumn: false, + shouldShowTagColumn: false, + shouldShowTaxColumn: false, + }, + count: 10, + currency: 'USD', + hasMoreResults: false, + hasResults: true, + offset: 0, + status: CONST.SEARCH.STATUS.EXPENSE.ALL, + total: 60, + isLoading: false, + type: 'expense', + }, +}; + const reportActionListItems = [ { accountID: 18439984, @@ -1257,6 +1302,56 @@ const transactionCardGroupListItemsSorted: TransactionCardGroupListItemType[] = }, ]; +const transactionWithdrawalIDGroupListItems: TransactionWithdrawalIDGroupListItemType[] = [ + { + bankName: CONST.BANK_NAMES.CHASE, + entryID, + accountNumber, + debitPosted: '2025-08-12 17:11:22', + count: 4, + currency: 'USD', + total: 40, + groupedBy: 'withdrawal-id', + transactions: [], + }, + { + bankName: CONST.BANK_NAMES.CITIBANK, + entryID: entryID2, + accountNumber: accountNumber2, + debitPosted: '2025-08-19 18:10:54', + count: 6, + currency: 'USD', + total: 20, + groupedBy: 'withdrawal-id', + transactions: [], + }, +]; + +const transactionWithdrawalIDGroupListItemsSorted: TransactionWithdrawalIDGroupListItemType[] = [ + { + bankName: CONST.BANK_NAMES.CITIBANK, + entryID: entryID2, + accountNumber: accountNumber2, + debitPosted: '2025-08-19 18:10:54', + count: 6, + currency: 'USD', + total: 20, + groupedBy: 'withdrawal-id', + transactions: [], + }, + { + bankName: CONST.BANK_NAMES.CHASE, + entryID, + accountNumber, + debitPosted: '2025-08-12 17:11:22', + count: 4, + currency: 'USD', + total: 40, + groupedBy: 'withdrawal-id', + transactions: [], + }, +]; + describe('SearchUIUtils', () => { beforeAll(async () => { Onyx.init({ @@ -1577,6 +1672,19 @@ describe('SearchUIUtils', () => { ), ).toStrictEqual(transactionCardGroupListItems); }); + + it('should return getWithdrawalIDSections result when type is EXPENSE and groupBy is withdrawal-id', () => { + expect( + SearchUIUtils.getSections( + CONST.SEARCH.DATA_TYPES.EXPENSE, + searchResultsGroupByWithdrawalID.data, + searchResultsGroupByWithdrawalID.search, + 2074551, + formatPhoneNumber, + CONST.SEARCH.GROUP_BY.WITHDRAWAL_ID, + ), + ).toStrictEqual(transactionWithdrawalIDGroupListItems); + }); }); describe('Test getSortedSections', () => { @@ -1648,6 +1756,20 @@ describe('SearchUIUtils', () => { SearchUIUtils.getSortedSections(CONST.SEARCH.DATA_TYPES.EXPENSE, '', transactionCardGroupListItems, localeCompare, 'date', 'asc', CONST.SEARCH.GROUP_BY.CARD), ).toStrictEqual(transactionCardGroupListItemsSorted); }); + + it('should return getSortedWithdrawalIDData result when type is EXPENSE and groupBy is withdrawal-id', () => { + expect( + SearchUIUtils.getSortedSections( + CONST.SEARCH.DATA_TYPES.EXPENSE, + '', + transactionWithdrawalIDGroupListItems, + localeCompare, + 'date', + 'asc', + CONST.SEARCH.GROUP_BY.WITHDRAWAL_ID, + ), + ).toStrictEqual(transactionWithdrawalIDGroupListItemsSorted); + }); }); describe('Test createTypeMenuItems', () => { From e366fcb5888f2b281b6b0f6aaa49203a5c4720af Mon Sep 17 00:00:00 2001 From: Abdelhafidh Belalia <16493223+s77rt@users.noreply.github.com> Date: Thu, 21 Aug 2025 01:41:52 +0100 Subject: [PATCH 10/11] update const --- src/CONST/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index ea0db9ec0544..e9c6ffdd8acc 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -6420,7 +6420,7 @@ const CONST = { ASSIGNEE: 'assignee', IN: 'in', CARD: 'card', - WITHDRAWAL_ID: 'withdrawalId', + WITHDRAWAL_ID: 'withdrawalID', }, SYNTAX_OPERATORS: { AND: 'and', From bb177dcd9b91a0cb49194bfc9a8cdda981c8feb4 Mon Sep 17 00:00:00 2001 From: Abdelhafidh Belalia <16493223+s77rt@users.noreply.github.com> Date: Thu, 21 Aug 2025 01:58:10 +0100 Subject: [PATCH 11/11] use withdrawal id term instead of entry id --- .../SelectionList/Search/WithdrawalIDListItemHeader.tsx | 2 +- src/languages/de.ts | 1 - src/languages/en.ts | 1 - src/languages/es.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 - 11 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/components/SelectionList/Search/WithdrawalIDListItemHeader.tsx b/src/components/SelectionList/Search/WithdrawalIDListItemHeader.tsx index b50e1919ddf3..5448be3901f6 100644 --- a/src/components/SelectionList/Search/WithdrawalIDListItemHeader.tsx +++ b/src/components/SelectionList/Search/WithdrawalIDListItemHeader.tsx @@ -75,7 +75,7 @@ function WithdrawalIDListItemHeader({ style={[styles.optionDisplayName, styles.sidebarLinkTextBold, styles.pre]} /> diff --git a/src/languages/de.ts b/src/languages/de.ts index fd06b2535678..6742b3088bf0 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -587,7 +587,6 @@ const translations = { network: 'Netzwerk', reportID: 'Berichts-ID', longID: 'Lange ID', - entryID: 'Beitrags-ID', withdrawalID: 'Auszahlungs-ID', bankAccounts: 'Bankkonten', chooseFile: 'Datei auswählen', diff --git a/src/languages/en.ts b/src/languages/en.ts index ed02e2405af6..f915e36ef6a3 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -579,7 +579,6 @@ const translations = { network: 'Network', reportID: 'Report ID', longID: 'Long ID', - entryID: 'Entry ID', withdrawalID: 'Withdrawal ID', bankAccounts: 'Bank accounts', chooseFile: 'Choose file', diff --git a/src/languages/es.ts b/src/languages/es.ts index 1a91e7208c84..fd1975473864 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -571,7 +571,6 @@ const translations = { network: 'La red', reportID: 'ID del informe', longID: 'ID largo', - entryID: 'ID de la entrada', withdrawalID: 'ID de retiro', bankAccounts: 'Cuentas bancarias', chooseFile: 'Elegir archivo', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index b00c52e343ef..a8ac17a57a82 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -587,7 +587,6 @@ const translations = { network: 'Réseau', reportID: 'ID du rapport', longID: 'ID long', - entryID: "ID d'entrée", withdrawalID: 'ID de retrait', bankAccounts: 'Comptes bancaires', chooseFile: 'Choisir un fichier', diff --git a/src/languages/it.ts b/src/languages/it.ts index 42b1b8d96204..8b47c9f6f463 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -587,7 +587,6 @@ const translations = { network: 'Rete', reportID: 'ID Rapporto', longID: 'ID lungo', - entryID: 'ID di ingresso', withdrawalID: 'ID di prelievo', bankAccounts: 'Conti bancari', chooseFile: 'Scegli file', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 5f1f9bb2b90a..827f1c861595 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -587,7 +587,6 @@ const translations = { network: 'ネットワーク', reportID: 'レポートID', longID: 'Long ID', - entryID: 'エントリーID', withdrawalID: '出金ID', bankAccounts: '銀行口座', chooseFile: 'ファイルを選択', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 66114508b391..e72380da6c6b 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -587,7 +587,6 @@ const translations = { network: 'Netwerk', reportID: 'Rapport-ID', longID: 'Lang ID', - entryID: 'Toegangs-ID', withdrawalID: 'Opname-ID', bankAccounts: 'Bankrekeningen', chooseFile: 'Bestand kiezen', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index a47e5161b934..b5da0f8ff270 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -587,7 +587,6 @@ const translations = { network: 'Sieć', reportID: 'ID raportu', longID: 'Długi identyfikator', - entryID: 'Identyfikator wpisu', withdrawalID: 'Identyfikator wypłaty', bankAccounts: 'Konta bankowe', chooseFile: 'Wybierz plik', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index c239a94ed558..b1913dee50e2 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -588,7 +588,6 @@ const translations = { network: 'Network', reportID: 'ID do Relatório', longID: 'ID longo', - entryID: 'ID de entrada', withdrawalID: 'ID de retirada', bankAccounts: 'Contas bancárias', chooseFile: 'Escolher arquivo', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 445e51371f1e..a83cc4d59c4f 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -587,7 +587,6 @@ const translations = { network: '网络', reportID: '报告 ID', longID: 'Long ID', - entryID: '条目 ID', withdrawalID: '提现ID', bankAccounts: '银行账户', chooseFile: '选择文件',