Skip to content

Commit 81afbbc

Browse files
authored
Merge pull request Expensify#82707 from Expensify/cm-add-dateoption-card-util
Add getCardAssignmentDateOption util method
2 parents 8af1e14 + 0b9f888 commit 81afbbc

3 files changed

Lines changed: 18 additions & 10 deletions

File tree

src/libs/CardUtils.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,6 +844,17 @@ function getDefaultCardName(cardholder?: string) {
844844
return `${cardholder}'s card`;
845845
}
846846

847+
/** Returns the date option for a card assignment — CUSTOM when not editing, or the existing option when editing. */
848+
function getCardAssignmentDateOption(isEditing: boolean | undefined, existingDateOption?: string): ValueOf<typeof CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS> {
849+
if (!isEditing) {
850+
return CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM;
851+
}
852+
if (existingDateOption === CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.FROM_BEGINNING) {
853+
return CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.FROM_BEGINNING;
854+
}
855+
return CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM;
856+
}
857+
847858
/**
848859
* Gets the start date for a card assignment.
849860
* When not editing, always returns the current date.
@@ -1285,6 +1296,7 @@ export {
12851296
hasOnlyOneCardToAssign,
12861297
checkIfNewFeedConnected,
12871298
getDefaultCardName,
1299+
getCardAssignmentDateOption,
12881300
getCardAssignmentStartDate,
12891301
getDomainOrWorkspaceAccountID,
12901302
mergeCardListWithWorkspaceFeeds,

src/pages/workspace/companyCards/assignCard/AssigneeStep.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import useSearchSelector from '@hooks/useSearchSelector';
1515
import useThemeStyles from '@hooks/useThemeStyles';
1616
import {setDraftInviteAccountID} from '@libs/actions/Card';
1717
import {searchInServer} from '@libs/actions/Report';
18-
import {getCardAssignmentStartDate, getDefaultCardName} from '@libs/CardUtils';
18+
import {getCardAssignmentDateOption, getCardAssignmentStartDate, getDefaultCardName} from '@libs/CardUtils';
1919
import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
2020
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
2121
import {getHeaderMessage, getSearchValueForPhoneOrEmail, sortAlphabetically} from '@libs/OptionsListUtils';
@@ -92,9 +92,7 @@ function AssigneeStep({route}: AssigneeStepProps) {
9292
cardToAssign.cardName = assignCard.cardToAssign.cardName;
9393
cardToAssign.customCardName = assignCard.cardToAssign.customCardName ?? defaultCardName;
9494
cardToAssign.startDate = getCardAssignmentStartDate(isEditing, assignCard?.cardToAssign?.startDate);
95-
cardToAssign.dateOption = !isEditing
96-
? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM
97-
: (assignCard?.cardToAssign?.dateOption ?? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM);
95+
cardToAssign.dateOption = getCardAssignmentDateOption(isEditing, assignCard?.cardToAssign?.dateOption);
9896
setAssignCardStepAndData({
9997
cardToAssign,
10098
isEditing: false,
@@ -127,9 +125,7 @@ function AssigneeStep({route}: AssigneeStepProps) {
127125
cardToAssign.cardName = assignCard.cardToAssign.cardName;
128126
cardToAssign.customCardName = assignCard.cardToAssign.customCardName ?? defaultCardName;
129127
cardToAssign.startDate = getCardAssignmentStartDate(isEditing, assignCard?.cardToAssign?.startDate);
130-
cardToAssign.dateOption = !isEditing
131-
? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM
132-
: (assignCard?.cardToAssign?.dateOption ?? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM);
128+
cardToAssign.dateOption = getCardAssignmentDateOption(isEditing, assignCard?.cardToAssign?.dateOption);
133129
setAssignCardStepAndData({
134130
cardToAssign,
135131
isEditing: false,

src/pages/workspace/companyCards/assignCard/InviteNewMemberStep.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import useCardsList from '@hooks/useCardsList';
77
import useLocalize from '@hooks/useLocalize';
88
import useOnyx from '@hooks/useOnyx';
99
import {setDraftInviteAccountID} from '@libs/actions/Card';
10-
import {getCardAssignmentStartDate, getDefaultCardName, getFilteredCardList, hasOnlyOneCardToAssign} from '@libs/CardUtils';
10+
import {getCardAssignmentDateOption, getCardAssignmentStartDate, getDefaultCardName, getFilteredCardList, hasOnlyOneCardToAssign} from '@libs/CardUtils';
1111
import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
1212
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
1313
import Navigation from '@navigation/Navigation';
@@ -64,7 +64,7 @@ function InviteNewMemberStep({route, currentUserPersonalDetails}: InviteeNewMemb
6464
cardToAssign.cardName = assignCard.cardToAssign.cardName;
6565
cardToAssign.customCardName = assignCard.cardToAssign.customCardName ?? defaultCardName;
6666
cardToAssign.startDate = getCardAssignmentStartDate(true, assignCard?.cardToAssign?.startDate);
67-
cardToAssign.dateOption = assignCard?.cardToAssign?.dateOption ?? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM;
67+
cardToAssign.dateOption = getCardAssignmentDateOption(true, assignCard?.cardToAssign?.dateOption);
6868
setAssignCardStepAndData({
6969
currentStep: CONST.COMPANY_CARD.STEP.CONFIRMATION,
7070
cardToAssign,
@@ -76,7 +76,7 @@ function InviteNewMemberStep({route, currentUserPersonalDetails}: InviteeNewMemb
7676
cardToAssign.cardName = onlyCard?.cardName;
7777
cardToAssign.encryptedCardNumber = onlyCard?.cardID;
7878
cardToAssign.startDate = getCardAssignmentStartDate(true, assignCard?.cardToAssign?.startDate);
79-
cardToAssign.dateOption = assignCard?.cardToAssign?.dateOption ?? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM;
79+
cardToAssign.dateOption = getCardAssignmentDateOption(true, assignCard?.cardToAssign?.dateOption);
8080
setAssignCardStepAndData({
8181
currentStep: CONST.COMPANY_CARD.STEP.CONFIRMATION,
8282
cardToAssign,

0 commit comments

Comments
 (0)