diff --git a/src/libs/CardUtils.ts b/src/libs/CardUtils.ts index 4e0ec647ea71..725a6324f32d 100644 --- a/src/libs/CardUtils.ts +++ b/src/libs/CardUtils.ts @@ -844,6 +844,17 @@ function getDefaultCardName(cardholder?: string) { return `${cardholder}'s card`; } +/** Returns the date option for a card assignment — CUSTOM when not editing, or the existing option when editing. */ +function getCardAssignmentDateOption(isEditing: boolean | undefined, existingDateOption?: string): ValueOf { + if (!isEditing) { + return CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM; + } + if (existingDateOption === CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.FROM_BEGINNING) { + return CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.FROM_BEGINNING; + } + return CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM; +} + /** * Gets the start date for a card assignment. * When not editing, always returns the current date. @@ -1285,6 +1296,7 @@ export { hasOnlyOneCardToAssign, checkIfNewFeedConnected, getDefaultCardName, + getCardAssignmentDateOption, getCardAssignmentStartDate, getDomainOrWorkspaceAccountID, mergeCardListWithWorkspaceFeeds, diff --git a/src/pages/workspace/companyCards/assignCard/AssigneeStep.tsx b/src/pages/workspace/companyCards/assignCard/AssigneeStep.tsx index 7e8f8a966157..943109fd759e 100644 --- a/src/pages/workspace/companyCards/assignCard/AssigneeStep.tsx +++ b/src/pages/workspace/companyCards/assignCard/AssigneeStep.tsx @@ -15,7 +15,7 @@ import useSearchSelector from '@hooks/useSearchSelector'; import useThemeStyles from '@hooks/useThemeStyles'; import {setDraftInviteAccountID} from '@libs/actions/Card'; import {searchInServer} from '@libs/actions/Report'; -import {getCardAssignmentStartDate, getDefaultCardName} from '@libs/CardUtils'; +import {getCardAssignmentDateOption, getCardAssignmentStartDate, getDefaultCardName} from '@libs/CardUtils'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import {getHeaderMessage, getSearchValueForPhoneOrEmail, sortAlphabetically} from '@libs/OptionsListUtils'; @@ -92,9 +92,7 @@ function AssigneeStep({route}: AssigneeStepProps) { cardToAssign.cardName = assignCard.cardToAssign.cardName; cardToAssign.customCardName = assignCard.cardToAssign.customCardName ?? defaultCardName; cardToAssign.startDate = getCardAssignmentStartDate(isEditing, assignCard?.cardToAssign?.startDate); - cardToAssign.dateOption = !isEditing - ? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM - : (assignCard?.cardToAssign?.dateOption ?? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM); + cardToAssign.dateOption = getCardAssignmentDateOption(isEditing, assignCard?.cardToAssign?.dateOption); setAssignCardStepAndData({ cardToAssign, isEditing: false, @@ -127,9 +125,7 @@ function AssigneeStep({route}: AssigneeStepProps) { cardToAssign.cardName = assignCard.cardToAssign.cardName; cardToAssign.customCardName = assignCard.cardToAssign.customCardName ?? defaultCardName; cardToAssign.startDate = getCardAssignmentStartDate(isEditing, assignCard?.cardToAssign?.startDate); - cardToAssign.dateOption = !isEditing - ? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM - : (assignCard?.cardToAssign?.dateOption ?? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM); + cardToAssign.dateOption = getCardAssignmentDateOption(isEditing, assignCard?.cardToAssign?.dateOption); setAssignCardStepAndData({ cardToAssign, isEditing: false, diff --git a/src/pages/workspace/companyCards/assignCard/InviteNewMemberStep.tsx b/src/pages/workspace/companyCards/assignCard/InviteNewMemberStep.tsx index a6618e3a3a1d..043c49a54806 100644 --- a/src/pages/workspace/companyCards/assignCard/InviteNewMemberStep.tsx +++ b/src/pages/workspace/companyCards/assignCard/InviteNewMemberStep.tsx @@ -7,7 +7,7 @@ import useCardsList from '@hooks/useCardsList'; import useLocalize from '@hooks/useLocalize'; import useOnyx from '@hooks/useOnyx'; import {setDraftInviteAccountID} from '@libs/actions/Card'; -import {getCardAssignmentStartDate, getDefaultCardName, getFilteredCardList, hasOnlyOneCardToAssign} from '@libs/CardUtils'; +import {getCardAssignmentDateOption, getCardAssignmentStartDate, getDefaultCardName, getFilteredCardList, hasOnlyOneCardToAssign} from '@libs/CardUtils'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import Navigation from '@navigation/Navigation'; @@ -64,7 +64,7 @@ function InviteNewMemberStep({route, currentUserPersonalDetails}: InviteeNewMemb cardToAssign.cardName = assignCard.cardToAssign.cardName; cardToAssign.customCardName = assignCard.cardToAssign.customCardName ?? defaultCardName; cardToAssign.startDate = getCardAssignmentStartDate(true, assignCard?.cardToAssign?.startDate); - cardToAssign.dateOption = assignCard?.cardToAssign?.dateOption ?? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM; + cardToAssign.dateOption = getCardAssignmentDateOption(true, assignCard?.cardToAssign?.dateOption); setAssignCardStepAndData({ currentStep: CONST.COMPANY_CARD.STEP.CONFIRMATION, cardToAssign, @@ -76,7 +76,7 @@ function InviteNewMemberStep({route, currentUserPersonalDetails}: InviteeNewMemb cardToAssign.cardName = onlyCard?.cardName; cardToAssign.encryptedCardNumber = onlyCard?.cardID; cardToAssign.startDate = getCardAssignmentStartDate(true, assignCard?.cardToAssign?.startDate); - cardToAssign.dateOption = assignCard?.cardToAssign?.dateOption ?? CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM; + cardToAssign.dateOption = getCardAssignmentDateOption(true, assignCard?.cardToAssign?.dateOption); setAssignCardStepAndData({ currentStep: CONST.COMPANY_CARD.STEP.CONFIRMATION, cardToAssign,