Skip to content

Commit 91e723f

Browse files
committed
fix(wp): clean up
Ticket: WP-1338
1 parent 2b6bd0f commit 91e723f

File tree

8 files changed

+212
-132
lines changed

8 files changed

+212
-132
lines changed

src/containers/BuildUnsignedConsolidation/GenericEcdsaForm.tsx

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ import {
77
FormikTextarea,
88
FormikTextfield,
99
} from '~/components';
10-
import { useWalletTypeLabels, WalletType } from './useWalletTypeLabels';
10+
import { getWalletTypeLabels, WalletType } from './useWalletTypeLabels';
1111
import { WalletTypeSelector } from './WalletTypeSelector';
1212

1313
const getValidationSchema = (walletType: WalletType) => Yup.object({
14+
walletType: Yup.string().oneOf(['cold', 'hot']).required(),
1415
userKey: Yup.string().required(),
1516
backupKey: Yup.string().required(),
1617
bitgoKey: Yup.string().required(),
@@ -23,9 +24,7 @@ const getValidationSchema = (walletType: WalletType) => Yup.object({
2324
seed: Yup.string(),
2425
}).required();
2526

26-
const validationSchema = getValidationSchema('cold');
27-
28-
export type EcdsaFormValues = Yup.Asserts<typeof validationSchema>;
27+
export type EcdsaFormValues = Yup.Asserts<ReturnType<typeof getValidationSchema>>;
2928

3029
export type GenericEcdsaFormValues = {
3130
onSubmit: (
@@ -35,21 +34,10 @@ export type GenericEcdsaFormValues = {
3534
};
3635

3736
export function GenericEcdsaForm({ onSubmit }: GenericEcdsaFormValues) {
38-
const {
39-
walletType,
40-
handleWalletTypeChange,
41-
userKeyLabel,
42-
userKeyHelperText,
43-
backupKeyLabel,
44-
backupKeyHelperText,
45-
bitgoKeyLabel,
46-
bitgoKeyHelperText,
47-
showWalletPassphrase,
48-
} = useWalletTypeLabels();
49-
5037
const formik = useFormik<EcdsaFormValues>({
5138
onSubmit,
5239
initialValues: {
40+
walletType: 'cold' as WalletType,
5341
userKey: '',
5442
backupKey: '',
5543
bitgoKey: '',
@@ -58,17 +46,39 @@ export function GenericEcdsaForm({ onSubmit }: GenericEcdsaFormValues) {
5846
endingScanIndex: 21,
5947
seed: undefined,
6048
},
61-
validationSchema: getValidationSchema(walletType),
62-
enableReinitialize: true,
49+
validate: (values) => {
50+
try {
51+
getValidationSchema(values.walletType as WalletType).validateSync(values, { abortEarly: false });
52+
return {};
53+
} catch (error: any) {
54+
const errors: Record<string, string> = {};
55+
error.inner?.forEach((err: any) => {
56+
if (err.path) {
57+
errors[err.path] = err.message;
58+
}
59+
});
60+
return errors;
61+
}
62+
},
6363
});
6464

65+
const {
66+
userKeyLabel,
67+
userKeyHelperText,
68+
backupKeyLabel,
69+
backupKeyHelperText,
70+
bitgoKeyLabel,
71+
bitgoKeyHelperText,
72+
showWalletPassphrase,
73+
} = getWalletTypeLabels(formik.values.walletType as WalletType);
74+
6575
return (
6676
<FormikProvider value={formik}>
6777
<Form>
6878
<h4 className="tw-text-body tw-font-semibold tw-border-b-0.5 tw-border-solid tw-border-gray-700 tw-mb-4">
6979
Self-managed cold or Hot wallet details
7080
</h4>
71-
<WalletTypeSelector value={walletType} onChange={handleWalletTypeChange} />
81+
<WalletTypeSelector />
7282
<div className="tw-mb-4">
7383
<FormikTextarea
7484
HelperText={userKeyHelperText}

src/containers/BuildUnsignedConsolidation/SolForm.tsx

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ import {
77
FormikTextarea,
88
FormikTextfield,
99
} from '~/components';
10-
import { useWalletTypeLabels, WalletType } from './useWalletTypeLabels';
10+
import { getWalletTypeLabels, WalletType } from './useWalletTypeLabels';
1111
import { WalletTypeSelector } from './WalletTypeSelector';
1212

1313
const getValidationSchema = (walletType: WalletType) => Yup.object({
14+
walletType: Yup.string().oneOf(['cold', 'hot']).required(),
1415
userKey: Yup.string().required(),
1516
backupKey: Yup.string().required(),
1617
bitgoKey: Yup.string().required(),
@@ -37,9 +38,7 @@ const getValidationSchema = (walletType: WalletType) => Yup.object({
3738
seed: Yup.string(),
3839
}).required();
3940

40-
const validationSchema = getValidationSchema('cold');
41-
42-
export type SolFormValues = Yup.Asserts<typeof validationSchema>;
41+
export type SolFormValues = Yup.Asserts<ReturnType<typeof getValidationSchema>>;
4342

4443
export type SolFormProps = {
4544
onSubmit: (
@@ -49,21 +48,10 @@ export type SolFormProps = {
4948
};
5049

5150
export function SolForm({ onSubmit }: SolFormProps) {
52-
const {
53-
walletType,
54-
handleWalletTypeChange,
55-
userKeyLabel,
56-
userKeyHelperText,
57-
backupKeyLabel,
58-
backupKeyHelperText,
59-
bitgoKeyLabel,
60-
bitgoKeyHelperText,
61-
showWalletPassphrase,
62-
} = useWalletTypeLabels();
63-
6451
const formik = useFormik<SolFormValues>({
6552
onSubmit,
6653
initialValues: {
54+
walletType: 'cold' as WalletType,
6755
userKey: '',
6856
backupKey: '',
6957
bitgoKey: '',
@@ -77,17 +65,39 @@ export function SolForm({ onSubmit }: SolFormProps) {
7765
endingScanIndex: 21,
7866
seed: undefined,
7967
},
80-
validationSchema: getValidationSchema(walletType),
81-
enableReinitialize: true,
68+
validate: (values) => {
69+
try {
70+
getValidationSchema(values.walletType as WalletType).validateSync(values, { abortEarly: false });
71+
return {};
72+
} catch (error: any) {
73+
const errors: Record<string, string> = {};
74+
error.inner?.forEach((err: any) => {
75+
if (err.path) {
76+
errors[err.path] = err.message;
77+
}
78+
});
79+
return errors;
80+
}
81+
},
8282
});
8383

84+
const {
85+
userKeyLabel,
86+
userKeyHelperText,
87+
backupKeyLabel,
88+
backupKeyHelperText,
89+
bitgoKeyLabel,
90+
bitgoKeyHelperText,
91+
showWalletPassphrase,
92+
} = getWalletTypeLabels(formik.values.walletType as WalletType);
93+
8494
return (
8595
<FormikProvider value={formik}>
8696
<Form>
8797
<h4 className="tw-text-body tw-font-semibold tw-border-b-0.5 tw-border-solid tw-border-gray-700 tw-mb-4">
8898
Self-managed cold or Hot wallet details
8999
</h4>
90-
<WalletTypeSelector value={walletType} onChange={handleWalletTypeChange} />
100+
<WalletTypeSelector />
91101
<div className="tw-mb-4">
92102
<FormikTextarea
93103
HelperText={userKeyHelperText}

src/containers/BuildUnsignedConsolidation/SolTokenForm.tsx

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ import {
88
FormikTextarea,
99
FormikTextfield,
1010
} from '~/components';
11-
import { useWalletTypeLabels, WalletType } from './useWalletTypeLabels';
11+
import { getWalletTypeLabels, WalletType } from './useWalletTypeLabels';
1212
import { WalletTypeSelector } from './WalletTypeSelector';
1313

1414
const getValidationSchema = (walletType: WalletType) => Yup.object({
15+
walletType: Yup.string().oneOf(['cold', 'hot']).required(),
1516
userKey: Yup.string().required(),
1617
backupKey: Yup.string().required(),
1718
bitgoKey: Yup.string().required(),
@@ -40,9 +41,7 @@ const getValidationSchema = (walletType: WalletType) => Yup.object({
4041
seed: Yup.string(),
4142
}).required();
4243

43-
const validationSchema = getValidationSchema('cold');
44-
45-
export type SolFormValues = Yup.Asserts<typeof validationSchema>;
44+
export type SolFormValues = Yup.Asserts<ReturnType<typeof getValidationSchema>>;
4645

4746
export type SolFormProps = {
4847
onSubmit: (
@@ -52,21 +51,10 @@ export type SolFormProps = {
5251
};
5352

5453
export function SolTokenForm({ onSubmit }: SolFormProps) {
55-
const {
56-
walletType,
57-
handleWalletTypeChange,
58-
userKeyLabel,
59-
userKeyHelperText,
60-
backupKeyLabel,
61-
backupKeyHelperText,
62-
bitgoKeyLabel,
63-
bitgoKeyHelperText,
64-
showWalletPassphrase,
65-
} = useWalletTypeLabels();
66-
6754
const formik = useFormik<SolFormValues>({
6855
onSubmit,
6956
initialValues: {
57+
walletType: 'cold' as WalletType,
7058
userKey: '',
7159
backupKey: '',
7260
bitgoKey: '',
@@ -82,17 +70,39 @@ export function SolTokenForm({ onSubmit }: SolFormProps) {
8270
tokenProgramId: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
8371
seed: undefined,
8472
},
85-
validationSchema: getValidationSchema(walletType),
86-
enableReinitialize: true,
73+
validate: (values) => {
74+
try {
75+
getValidationSchema(values.walletType as WalletType).validateSync(values, { abortEarly: false });
76+
return {};
77+
} catch (error: any) {
78+
const errors: Record<string, string> = {};
79+
error.inner?.forEach((err: any) => {
80+
if (err.path) {
81+
errors[err.path] = err.message;
82+
}
83+
});
84+
return errors;
85+
}
86+
},
8787
});
8888

89+
const {
90+
userKeyLabel,
91+
userKeyHelperText,
92+
backupKeyLabel,
93+
backupKeyHelperText,
94+
bitgoKeyLabel,
95+
bitgoKeyHelperText,
96+
showWalletPassphrase,
97+
} = getWalletTypeLabels(formik.values.walletType as WalletType);
98+
8999
return (
90100
<FormikProvider value={formik}>
91101
<Form>
92102
<h4 className="tw-text-body tw-font-semibold tw-border-b-0.5 tw-border-solid tw-border-gray-700 tw-mb-4">
93103
Self-managed cold or Hot wallet details
94104
</h4>
95-
<WalletTypeSelector value={walletType} onChange={handleWalletTypeChange} />
105+
<WalletTypeSelector />
96106
<div className="tw-mb-4">
97107
<FormikTextarea
98108
HelperText={userKeyHelperText}

src/containers/BuildUnsignedConsolidation/SuiTokenForm.tsx

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ import {
77
FormikTextarea,
88
FormikTextfield,
99
} from '~/components';
10-
import { useWalletTypeLabels, WalletType } from './useWalletTypeLabels';
10+
import { getWalletTypeLabels, WalletType } from './useWalletTypeLabels';
1111
import { WalletTypeSelector } from './WalletTypeSelector';
1212

1313
const getValidationSchema = (walletType: WalletType) => Yup.object({
14+
walletType: Yup.string().oneOf(['cold', 'hot']).required(),
1415
userKey: Yup.string().required(),
1516
backupKey: Yup.string().required(),
1617
bitgoKey: Yup.string().required(),
@@ -24,9 +25,7 @@ const getValidationSchema = (walletType: WalletType) => Yup.object({
2425
seed: Yup.string(),
2526
}).required();
2627

27-
const validationSchema = getValidationSchema('cold');
28-
29-
export type SuiFormValues = Yup.Asserts<typeof validationSchema>;
28+
export type SuiFormValues = Yup.Asserts<ReturnType<typeof getValidationSchema>>;
3029

3130
export type SuiTokenFormValues = {
3231
onSubmit: (
@@ -36,21 +35,10 @@ export type SuiTokenFormValues = {
3635
};
3736

3837
export function SuiTokenForm({ onSubmit }: SuiTokenFormValues) {
39-
const {
40-
walletType,
41-
handleWalletTypeChange,
42-
userKeyLabel,
43-
userKeyHelperText,
44-
backupKeyLabel,
45-
backupKeyHelperText,
46-
bitgoKeyLabel,
47-
bitgoKeyHelperText,
48-
showWalletPassphrase,
49-
} = useWalletTypeLabels();
50-
5138
const formik = useFormik<SuiFormValues>({
5239
onSubmit,
5340
initialValues: {
41+
walletType: 'cold' as WalletType,
5442
userKey: '',
5543
backupKey: '',
5644
bitgoKey: '',
@@ -60,17 +48,39 @@ export function SuiTokenForm({ onSubmit }: SuiTokenFormValues) {
6048
endingScanIndex: 21,
6149
seed: undefined,
6250
},
63-
validationSchema: getValidationSchema(walletType),
64-
enableReinitialize: true,
51+
validate: (values) => {
52+
try {
53+
getValidationSchema(values.walletType as WalletType).validateSync(values, { abortEarly: false });
54+
return {};
55+
} catch (error: any) {
56+
const errors: Record<string, string> = {};
57+
error.inner?.forEach((err: any) => {
58+
if (err.path) {
59+
errors[err.path] = err.message;
60+
}
61+
});
62+
return errors;
63+
}
64+
},
6565
});
6666

67+
const {
68+
userKeyLabel,
69+
userKeyHelperText,
70+
backupKeyLabel,
71+
backupKeyHelperText,
72+
bitgoKeyLabel,
73+
bitgoKeyHelperText,
74+
showWalletPassphrase,
75+
} = getWalletTypeLabels(formik.values.walletType as WalletType);
76+
6777
return (
6878
<FormikProvider value={formik}>
6979
<Form>
7080
<h4 className="tw-text-body tw-font-semibold tw-border-b-0.5 tw-border-solid tw-border-gray-700 tw-mb-4">
7181
Self-managed cold or Hot wallet details
7282
</h4>
73-
<WalletTypeSelector value={walletType} onChange={handleWalletTypeChange} />
83+
<WalletTypeSelector />
7484
<div className="tw-mb-4">
7585
<FormikTextarea
7686
HelperText={userKeyHelperText}

0 commit comments

Comments
 (0)