Skip to content

Commit 04b9304

Browse files
authored
Merge pull request #58101 from callstack-internal/fix/58005-decode-bank-param
fix: decode bank param to get all cards correctly
2 parents 9234333 + b0ae197 commit 04b9304

File tree

4 files changed

+24
-13
lines changed

4 files changed

+24
-13
lines changed

src/pages/workspace/companyCards/WorkspaceCompanyCardAccountSelectCardPage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ type WorkspaceCompanyCardAccountSelectCardProps = PlatformStackScreenProps<Setti
2828
function WorkspaceCompanyCardAccountSelectCardPage({route}: WorkspaceCompanyCardAccountSelectCardProps) {
2929
const {translate} = useLocalize();
3030
const styles = useThemeStyles();
31-
const {policyID, cardID, bank} = route.params;
31+
const {policyID, cardID} = route.params;
32+
const bank = decodeURIComponent(route.params.bank);
3233
const policy = usePolicy(policyID);
3334
const workspaceAccountID = getWorkspaceAccountID(policyID);
3435
const [searchText, setSearchText] = useState('');

src/pages/workspace/companyCards/WorkspaceCompanyCardDetailsPage.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ import {getExportMenuItem} from './utils';
4141
type WorkspaceCompanyCardDetailsPageProps = PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.COMPANY_CARD_DETAILS>;
4242

4343
function WorkspaceCompanyCardDetailsPage({route}: WorkspaceCompanyCardDetailsPageProps) {
44-
const {policyID, cardID, backTo, bank} = route.params;
44+
const {policyID, cardID, backTo} = route.params;
45+
const bank = decodeURIComponent(route.params.bank);
4546
const [connectionSyncProgress] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CONNECTION_SYNC_PROGRESS}${policyID}`);
4647
const [customCardNames] = useOnyx(ONYXKEYS.NVP_EXPENSIFY_COMPANY_CARDS_CUSTOM_NAMES);
4748
const workspaceAccountID = getWorkspaceAccountID(policyID);
@@ -73,7 +74,7 @@ function WorkspaceCompanyCardDetailsPage({route}: WorkspaceCompanyCardDetailsPag
7374
};
7475

7576
const updateCard = () => {
76-
updateWorkspaceCompanyCard(workspaceAccountID, cardID, bank);
77+
updateWorkspaceCompanyCard(workspaceAccountID, cardID, bank as CompanyCardFeed);
7778
};
7879

7980
if (!card && !isLoadingOnyxValue(allBankCardsMetadata)) {

src/pages/workspace/companyCards/WorkspaceCompanyCardEditCardNamePage.tsx

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ import TextInput from '@components/TextInput';
1010
import useAutoFocusInput from '@hooks/useAutoFocusInput';
1111
import useLocalize from '@hooks/useLocalize';
1212
import useThemeStyles from '@hooks/useThemeStyles';
13-
import * as ErrorUtils from '@libs/ErrorUtils';
13+
import {addErrorMessage} from '@libs/ErrorUtils';
1414
import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
15-
import * as PolicyUtils from '@libs/PolicyUtils';
16-
import * as ValidationUtils from '@libs/ValidationUtils';
15+
import {getWorkspaceAccountID} from '@libs/PolicyUtils';
16+
import {getFieldRequiredErrors} from '@libs/ValidationUtils';
1717
import Navigation from '@navigation/Navigation';
1818
import type {SettingsNavigatorParamList} from '@navigation/types';
1919
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
20-
import * as CompanyCards from '@userActions/CompanyCards';
20+
import {updateCompanyCardName} from '@userActions/CompanyCards';
2121
import CONST from '@src/CONST';
2222
import ONYXKEYS from '@src/ONYXKEYS';
2323
import ROUTES from '@src/ROUTES';
@@ -27,8 +27,9 @@ import INPUT_IDS from '@src/types/form/EditExpensifyCardNameForm';
2727
type WorkspaceCompanyCardEditCardNamePageProps = PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.COMPANY_CARD_NAME>;
2828

2929
function WorkspaceCompanyCardEditCardNamePage({route}: WorkspaceCompanyCardEditCardNamePageProps) {
30-
const {policyID, cardID, bank} = route.params;
31-
const workspaceAccountID = PolicyUtils.getWorkspaceAccountID(policyID);
30+
const {policyID, cardID} = route.params;
31+
const bank = decodeURIComponent(route.params.bank);
32+
const workspaceAccountID = getWorkspaceAccountID(policyID);
3233
const [customCardNames] = useOnyx(ONYXKEYS.NVP_EXPENSIFY_COMPANY_CARDS_CUSTOM_NAMES);
3334
const defaultValue = customCardNames?.[cardID];
3435

@@ -37,15 +38,22 @@ function WorkspaceCompanyCardEditCardNamePage({route}: WorkspaceCompanyCardEditC
3738
const styles = useThemeStyles();
3839

3940
const submit = (values: FormOnyxValues<typeof ONYXKEYS.FORMS.EDIT_WORKSPACE_COMPANY_CARD_NAME_FORM>) => {
40-
CompanyCards.updateCompanyCardName(workspaceAccountID, cardID, values[INPUT_IDS.NAME], bank, defaultValue);
41+
updateCompanyCardName(workspaceAccountID, cardID, values[INPUT_IDS.NAME], bank, defaultValue);
4142
Navigation.goBack();
4243
};
4344

4445
const validate = (values: FormOnyxValues<typeof ONYXKEYS.FORMS.EDIT_WORKSPACE_COMPANY_CARD_NAME_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.EDIT_WORKSPACE_COMPANY_CARD_NAME_FORM> => {
45-
const errors = ValidationUtils.getFieldRequiredErrors(values, [INPUT_IDS.NAME]);
46+
const errors = getFieldRequiredErrors(values, [INPUT_IDS.NAME]);
4647
const length = values.name.length;
4748
if (length > CONST.STANDARD_LENGTH_LIMIT) {
48-
ErrorUtils.addErrorMessage(errors, INPUT_IDS.NAME, translate('common.error.characterLimitExceedCounter', {length, limit: CONST.STANDARD_LENGTH_LIMIT}));
49+
addErrorMessage(
50+
errors,
51+
INPUT_IDS.NAME,
52+
translate('common.error.characterLimitExceedCounter', {
53+
length,
54+
limit: CONST.STANDARD_LENGTH_LIMIT,
55+
}),
56+
);
4957
}
5058
return errors;
5159
};

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {clearAssignCardStepAndData} from '@userActions/CompanyCards';
1111
import CONST from '@src/CONST';
1212
import ONYXKEYS from '@src/ONYXKEYS';
1313
import type SCREENS from '@src/SCREENS';
14+
import type {CompanyCardFeed} from '@src/types/onyx';
1415
import AssigneeStep from './AssigneeStep';
1516
import CardNameStep from './CardNameStep';
1617
import CardSelectionStep from './CardSelectionStep';
@@ -23,7 +24,7 @@ function AssignCardFeedPage({route, policy}: AssignCardFeedPageProps) {
2324
const [assignCard] = useOnyx(ONYXKEYS.ASSIGN_CARD);
2425
const currentStep = assignCard?.currentStep;
2526

26-
const feed = route.params?.feed;
27+
const feed = decodeURIComponent(route.params?.feed) as CompanyCardFeed;
2728
const backTo = route.params?.backTo;
2829
const policyID = policy?.id;
2930
const [isActingAsDelegate] = useOnyx(ONYXKEYS.ACCOUNT, {selector: (account) => !!account?.delegatedAccess?.delegate});

0 commit comments

Comments
 (0)