Skip to content

Commit 46244eb

Browse files
committed
fix: get proper name for the feed
1 parent c46c093 commit 46244eb

3 files changed

Lines changed: 26 additions & 20 deletions

File tree

src/libs/ExpensifyCardFeedSelectorUtils.ts

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1-
import type {OnyxCollection} from 'react-native-onyx';
1+
import type {OnyxCollection, OnyxEntry} from 'react-native-onyx';
22
import ONYXKEYS from '@src/ONYXKEYS';
33
import type {ExpensifyCardSettings, Policy} from '@src/types/onyx';
4-
import {getFundIdFromSettingsKey, getLinkedPolicyIDsFromExpensifyCardSettings, getPreferredPolicyFromExpensifyCardSettings, isPolicyIDInLinkedExpensifyCardPolicyList} from './CardUtils';
5-
import {isPolicyAdmin} from './PolicyUtils';
4+
import {
5+
getCardSettings,
6+
getFundIdFromSettingsKey,
7+
getLinkedPolicyIDsFromExpensifyCardSettings,
8+
getPreferredPolicyFromExpensifyCardSettings,
9+
isPolicyIDInLinkedExpensifyCardPolicyList,
10+
} from './CardUtils';
11+
import {getDescriptionForPolicyDomainCard, isPolicyAdmin} from './PolicyUtils';
612

713
type ExpensifyCardFeedEntry = {
814
settingsKey: string;
@@ -70,4 +76,15 @@ function partitionExpensifyCardFeedsForSelector(entries: ExpensifyCardFeedEntry[
7076
return {primary, other};
7177
}
7278

73-
export {getAdminExpensifyCardFeedEntries, partitionExpensifyCardFeedsForSelector, type ExpensifyCardFeedEntry};
79+
function getExpensifyCardFeedDescription(cardSettings: OnyxEntry<ExpensifyCardSettings>, policies: OnyxCollection<Policy>): string {
80+
const domainName = getCardSettings(cardSettings)?.domainName ?? '';
81+
if (domainName) {
82+
return getDescriptionForPolicyDomainCard(domainName, policies);
83+
}
84+
const linkedPolicyIDs = getLinkedPolicyIDsFromExpensifyCardSettings(cardSettings);
85+
const preferredPolicyID = getPreferredPolicyFromExpensifyCardSettings(cardSettings);
86+
const policyIDForName = linkedPolicyIDs?.length ? linkedPolicyIDs.at(0) : preferredPolicyID;
87+
return (policyIDForName && policies?.[`${ONYXKEYS.COLLECTION.POLICY}${policyIDForName.toUpperCase()}`]?.name) ?? '';
88+
}
89+
90+
export {getAdminExpensifyCardFeedEntries, getExpensifyCardFeedDescription, partitionExpensifyCardFeedsForSelector, type ExpensifyCardFeedEntry};

src/pages/workspace/expensifyCard/WorkspaceExpensifyCardFeedSelectorPage.tsx

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,12 @@ import useOnyx from '@hooks/useOnyx';
2121
import usePrimaryContactMethod from '@hooks/usePrimaryContactMethod';
2222
import useThemeStyles from '@hooks/useThemeStyles';
2323
import {clearIssueNewCardFormData, setIssueNewCardStepAndData, updateSelectedExpensifyCardFeed} from '@libs/actions/Card';
24-
import {getLinkedPolicyIDsFromExpensifyCardSettings, getPreferredPolicyFromExpensifyCardSettings} from '@libs/CardUtils';
2524
import {getMicroSecondOnyxErrorWithTranslationKey} from '@libs/ErrorUtils';
2625
import type {ExpensifyCardFeedEntry} from '@libs/ExpensifyCardFeedSelectorUtils';
26+
import {getExpensifyCardFeedDescription} from '@libs/ExpensifyCardFeedSelectorUtils';
2727
import {isEmailPublicDomain} from '@libs/LoginUtils';
2828
import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
2929
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
30-
import {getDescriptionForPolicyDomainCard} from '@libs/PolicyUtils';
3130
import Navigation from '@navigation/Navigation';
3231
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
3332
import variables from '@styles/variables';
@@ -84,17 +83,6 @@ function WorkspaceExpensifyCardFeedSelectorPage({route}: WorkspaceExpensifyCardF
8483

8584
const issueCardFundID = getIssueCardFundID();
8685

87-
const getFeedSelectorRowText = (entry: ExpensifyCardFeedEntry) => {
88-
const domainName = entry.settings?.domainName ?? '';
89-
if (domainName) {
90-
return getDescriptionForPolicyDomainCard(domainName, policies);
91-
}
92-
const linkedPolicyIDs = getLinkedPolicyIDsFromExpensifyCardSettings(entry.settings);
93-
const preferredPolicyID = getPreferredPolicyFromExpensifyCardSettings(entry.settings);
94-
const policyIDForName = linkedPolicyIDs?.length ? linkedPolicyIDs.at(0) : preferredPolicyID;
95-
return (policyIDForName && policies?.[`${ONYXKEYS.COLLECTION.POLICY}${policyIDForName.toUpperCase()}`]?.name) ?? '';
96-
};
97-
9886
const handleAddCardPress = () => {
9987
if (issueCardFundID === undefined) {
10088
return;
@@ -129,7 +117,7 @@ function WorkspaceExpensifyCardFeedSelectorPage({route}: WorkspaceExpensifyCardF
129117

130118
const toListItem = (entry: ExpensifyCardFeedEntry, isOtherWorkspaceSection: boolean): ExpensifyFeedListItem => ({
131119
value: entry.fundID,
132-
text: getFeedSelectorRowText(entry),
120+
text: getExpensifyCardFeedDescription(entry.settings, policies),
133121
keyForList: entry.fundID.toString(),
134122
isSelected: entry.fundID === lastSelectedExpensifyCardFeedID,
135123
isDisabled: isOtherWorkspaceSection && isOffline,

src/pages/workspace/expensifyCard/WorkspaceExpensifyCardListPage.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ import useWindowDimensions from '@hooks/useWindowDimensions';
3232
import {clearIssueNewCardFormData, setIssueNewCardStepAndData} from '@libs/actions/Card';
3333
import {clearDeletePaymentMethodError} from '@libs/actions/PaymentMethods';
3434
import {filterCardsByPersonalDetails, getCardsByCardholderName, getCardSettings, sortCardsByCardholderName} from '@libs/CardUtils';
35+
import {getExpensifyCardFeedDescription} from '@libs/ExpensifyCardFeedSelectorUtils';
3536
import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types';
3637
import {getDisplayNameOrDefault} from '@libs/PersonalDetailsUtils';
37-
import {getDescriptionForPolicyDomainCard, getMemberAccountIDsForWorkspace} from '@libs/PolicyUtils';
38+
import {getMemberAccountIDsForWorkspace} from '@libs/PolicyUtils';
3839
import Navigation from '@navigation/Navigation';
3940
import type {WorkspaceSplitNavigatorParamList} from '@navigation/types';
4041
import CONST from '@src/CONST';
@@ -255,7 +256,7 @@ function WorkspaceExpensifyCardListPage({route, cardsList, fundID}: WorkspaceExp
255256
onFeedSelect={() => Navigation.navigate(ROUTES.WORKSPACE_EXPENSIFY_CARD_SELECT_FEED.getRoute(policyID))}
256257
CardFeedIcon={cardFeedIcon}
257258
feedName={translate('workspace.common.expensifyCard')}
258-
supportingText={getDescriptionForPolicyDomainCard(settings?.domainName ?? '', allPolicies)}
259+
supportingText={getExpensifyCardFeedDescription(cardSettings, allPolicies)}
259260
/>
260261
{isBankAccountVerified && getHeaderButtons()}
261262
</View>

0 commit comments

Comments
 (0)