Skip to content

Commit 8421c73

Browse files
committed
add more truncation
1 parent 32f0c36 commit 8421c73

2 files changed

Lines changed: 23 additions & 17 deletions

File tree

src/pages/workspace/rules/SpendRules/SpendRulePageBase.tsx

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ import Navigation from '@libs/Navigation/Navigation';
2020
import {rand64} from '@libs/NumberUtils';
2121
import {getDisplayNameOrDefault} from '@libs/PersonalDetailsUtils';
2222
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
23-
import type {SpendRuleCategory} from '@src/types/form/SpendRuleForm';
2423
import CONST from '@src/CONST';
2524
import type {TranslationPaths} from '@src/languages/types';
2625
import ONYXKEYS from '@src/ONYXKEYS';
2726
import ROUTES from '@src/ROUTES';
27+
import type {SpendRuleCategory} from '@src/types/form/SpendRuleForm';
2828
import SpendRuleRestrictionTypeToggle from './SpendRuleRestrictionTypeToggle';
2929
import getTruncatedSpendRuleSummary from './SpendRuleSummaryUtils';
3030

@@ -69,20 +69,6 @@ function SpendRulePageBase({policyID, titleKey, testID}: SpendRulePageBaseProps)
6969
setIsErrorVisible(false);
7070
};
7171

72-
const cardsMenuTitle = !cardIDs?.length
73-
? ''
74-
: cardIDs
75-
.map((id) => {
76-
const card = cardsList?.[id];
77-
if (card === undefined) {
78-
return id;
79-
}
80-
const accountID = card.accountID ?? CONST.DEFAULT_NUMBER_ID;
81-
const displayName = getDisplayNameOrDefault(personalDetails?.[accountID], '', false);
82-
return getCardDescriptionForSearchTable(card, displayName || undefined) || id;
83-
})
84-
.join(', ');
85-
8672
const selectedCurrency = getSelectedCardsSharedCurrency(cardIDs, cardsList);
8773
const parsedMaxAmount = Number.parseFloat(maxAmount);
8874
const maxAmountMenuTitle = Number.isFinite(parsedMaxAmount) ? convertToDisplayString(convertToBackendAmount(parsedMaxAmount), selectedCurrency ?? CONST.CURRENCY.USD) : '';
@@ -100,6 +86,21 @@ function SpendRulePageBase({policyID, titleKey, testID}: SpendRulePageBaseProps)
10086
Navigation.navigate(ROUTES.RULES_SPEND_CARD.getRoute(policyID));
10187
};
10288

89+
function getCardsMenuTitle(cardIDsToSummarize: string[] | undefined): string {
90+
return getTruncatedSpendRuleSummary(
91+
cardIDsToSummarize?.map((id) => {
92+
const card = cardsList?.[id];
93+
if (card === undefined) {
94+
return id;
95+
}
96+
const accountID = card.accountID ?? CONST.DEFAULT_NUMBER_ID;
97+
const displayName = getDisplayNameOrDefault(personalDetails?.[accountID], '', false);
98+
return getCardDescriptionForSearchTable(card, displayName || undefined) || id;
99+
}),
100+
(summary, count) => translate('workspace.rules.spendRules.summaryMoreCount', {summary, count}),
101+
);
102+
}
103+
103104
function getMerchantMenuTitle(merchantNamesToSummarize: string[] | undefined): string {
104105
return getTruncatedSpendRuleSummary(merchantNamesToSummarize, (summary, count) => translate('workspace.rules.spendRules.summaryMoreCount', {summary, count}));
105106
}
@@ -111,6 +112,7 @@ function SpendRulePageBase({policyID, titleKey, testID}: SpendRulePageBaseProps)
111112
);
112113
}
113114

115+
const cardsMenuTitle = getCardsMenuTitle(cardIDs);
114116
const categoriesMenuTitle = getCategoryMenuTitle(categories);
115117

116118
const hasSelectedCards = !!cardIDs?.length;
@@ -158,6 +160,7 @@ function SpendRulePageBase({policyID, titleKey, testID}: SpendRulePageBaseProps)
158160
}}
159161
shouldShowRightIcon
160162
title={cardsMenuTitle}
163+
numberOfLinesTitle={2}
161164
titleStyle={styles.flex1}
162165
sentryLabel={CONST.SENTRY_LABEL.WORKSPACE.RULES.MERCHANT_RULE_SECTION_ITEM}
163166
/>

src/pages/workspace/rules/SpendRules/SpendRulesSection.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,11 @@ function getSpendRuleSummaryParts(
4747
translate: ReturnType<typeof useLocalize>['translate'],
4848
): SpendRuleSummaryPart[] {
4949
const summaryParts: SpendRuleSummaryPart[] = [];
50-
const merchantNames = formValues.merchantNames.filter(Boolean).join(', ');
51-
const categories = formValues.categories.map((category) => translate(`workspace.rules.spendRules.categoryOptions.${category}`)).join(', ');
50+
const merchantNames = getTruncatedSpendRuleSummary(formValues.merchantNames, (summary, count) => translate('workspace.rules.spendRules.summaryMoreCount', {summary, count}));
51+
const categories = getTruncatedSpendRuleSummary(
52+
formValues.categories.map((category) => translate(`workspace.rules.spendRules.categoryOptions.${category}`)),
53+
(summary, count) => translate('workspace.rules.spendRules.summaryMoreCount', {summary, count}),
54+
);
5255
const maxAmount = formValues.maxAmount.trim();
5356

5457
if (merchantNames) {

0 commit comments

Comments
 (0)