@xyo-network/react-form-credit-card 3.0.2 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/components/controls/WithFormControlProps.d.ts +6 -0
- package/dist/browser/components/controls/WithFormControlProps.d.ts.map +1 -0
- package/dist/browser/components/controls/card/Email.d.ts +4 -0
- package/dist/browser/components/controls/card/Email.d.ts.map +1 -0
- package/dist/browser/components/controls/card/Expiration.d.ts +4 -0
- package/dist/browser/components/controls/card/Expiration.d.ts.map +1 -0
- package/dist/browser/components/controls/card/FormControlTextField.d.ts +10 -0
- package/dist/browser/components/controls/card/FormControlTextField.d.ts.map +1 -0
- package/dist/browser/components/controls/card/Name.d.ts +7 -0
- package/dist/browser/components/controls/card/Name.d.ts.map +1 -0
- package/dist/browser/components/controls/card/Options.d.ts +12 -0
- package/dist/browser/components/controls/card/Options.d.ts.map +1 -0
- package/dist/browser/components/controls/card/Zip.d.ts +4 -0
- package/dist/browser/components/controls/card/Zip.d.ts.map +1 -0
- package/dist/browser/components/controls/card/cvv/Cvv.d.ts +4 -0
- package/dist/browser/components/controls/card/cvv/Cvv.d.ts.map +1 -0
- package/dist/browser/components/controls/card/cvv/index.d.ts +3 -0
- package/dist/browser/components/controls/card/cvv/index.d.ts.map +1 -0
- package/dist/browser/components/controls/card/cvv/use.d.ts +9 -0
- package/dist/browser/components/controls/card/cvv/use.d.ts.map +1 -0
- package/dist/browser/components/controls/card/index.d.ts +10 -0
- package/dist/browser/components/controls/card/index.d.ts.map +1 -0
- package/dist/browser/components/controls/card/number/Number.d.ts +4 -0
- package/dist/browser/components/controls/card/number/Number.d.ts.map +1 -0
- package/dist/browser/components/controls/card/number/index.d.ts +3 -0
- package/dist/browser/components/controls/card/number/index.d.ts.map +1 -0
- package/dist/browser/components/controls/card/number/use.d.ts +10 -0
- package/dist/browser/components/controls/card/number/use.d.ts.map +1 -0
- package/dist/browser/components/controls/card/useCreditCardFormControl.d.ts +9 -0
- package/dist/browser/components/controls/card/useCreditCardFormControl.d.ts.map +1 -0
- package/dist/browser/components/controls/index.d.ts +3 -0
- package/dist/browser/components/controls/index.d.ts.map +1 -0
- package/dist/browser/components/form/Form.d.ts +5 -0
- package/dist/browser/components/form/Form.d.ts.map +1 -0
- package/dist/browser/components/form/InputFieldsStack.d.ts +7 -0
- package/dist/browser/components/form/InputFieldsStack.d.ts.map +1 -0
- package/dist/browser/components/form/Props.d.ts +14 -0
- package/dist/browser/components/form/Props.d.ts.map +1 -0
- package/dist/browser/components/form/index.d.ts +5 -0
- package/dist/browser/components/form/index.d.ts.map +1 -0
- package/dist/browser/components/form/useFormStorage.d.ts +5 -0
- package/dist/browser/components/form/useFormStorage.d.ts.map +1 -0
- package/dist/browser/components/img/index.d.ts +5 -0
- package/dist/browser/components/img/index.d.ts.map +1 -0
- package/dist/browser/components/index.d.ts +4 -0
- package/dist/browser/components/index.d.ts.map +1 -0
- package/dist/browser/components/support/Fields.d.ts +4 -0
- package/dist/browser/components/support/Fields.d.ts.map +1 -0
- package/dist/browser/components/support/InputError.d.ts +5 -0
- package/dist/browser/components/support/InputError.d.ts.map +1 -0
- package/dist/browser/components/support/index.d.ts +4 -0
- package/dist/browser/components/support/index.d.ts.map +1 -0
- package/dist/browser/components/support/validateCreditCardInputs.d.ts +3 -0
- package/dist/browser/components/support/validateCreditCardInputs.d.ts.map +1 -0
- package/dist/browser/context/FormGroupCreditCardContext.d.ts +7 -0
- package/dist/browser/context/FormGroupCreditCardContext.d.ts.map +1 -0
- package/dist/browser/context/FormGroupCreditCardProvider.d.ts +10 -0
- package/dist/browser/context/FormGroupCreditCardProvider.d.ts.map +1 -0
- package/dist/browser/context/index.d.ts +4 -0
- package/dist/browser/context/index.d.ts.map +1 -0
- package/dist/browser/context/useFormGroupWithCreditCard.d.ts +6 -0
- package/dist/browser/context/useFormGroupWithCreditCard.d.ts.map +1 -0
- package/dist/browser/controls/CreditCardCvv.d.ts +20 -0
- package/dist/browser/controls/CreditCardCvv.d.ts.map +1 -0
- package/dist/browser/controls/CreditCardExpiry.d.ts +21 -0
- package/dist/browser/controls/CreditCardExpiry.d.ts.map +1 -0
- package/dist/browser/controls/CreditCardNumber.d.ts +23 -0
- package/dist/browser/controls/CreditCardNumber.d.ts.map +1 -0
- package/dist/browser/controls/Email.d.ts +14 -0
- package/dist/browser/controls/Email.d.ts.map +1 -0
- package/dist/browser/controls/Name.d.ts +10 -0
- package/dist/browser/controls/Name.d.ts.map +1 -0
- package/dist/browser/controls/Zip.d.ts +13 -0
- package/dist/browser/controls/Zip.d.ts.map +1 -0
- package/dist/browser/controls/index.d.ts +7 -0
- package/dist/browser/controls/index.d.ts.map +1 -0
- package/dist/browser/index.d.ts +6 -223
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.mjs +15 -15
- package/dist/browser/index.mjs.map +1 -1
- package/dist/browser/models/CreditCardInput.d.ts +18 -0
- package/dist/browser/models/CreditCardInput.d.ts.map +1 -0
- package/dist/browser/models/index.d.ts +2 -0
- package/dist/browser/models/index.d.ts.map +1 -0
- package/dist/browser/utils/index.d.ts +2 -0
- package/dist/browser/utils/index.d.ts.map +1 -0
- package/dist/browser/utils/umask.d.ts +2 -0
- package/dist/browser/utils/umask.d.ts.map +1 -0
- package/package.json +57 -51
- package/src/components/controls/card/Email.tsx +9 -3
- package/src/components/controls/card/Expiration.tsx +9 -3
- package/src/components/controls/card/FormControlTextField.tsx +6 -2
- package/src/components/controls/card/Name.tsx +9 -3
- package/src/components/controls/card/Options.ts +3 -1
- package/src/components/controls/card/Zip.tsx +12 -4
- package/src/components/controls/card/cvv/Cvv.tsx +12 -4
- package/src/components/controls/card/cvv/use.ts +6 -2
- package/src/components/controls/card/number/Number.tsx +9 -3
- package/src/components/controls/card/number/use.ts +6 -2
- package/src/components/controls/card/useCreditCardFormControl.tsx +8 -4
- package/src/components/form/Form.tsx +6 -1
- package/src/components/form/InputFieldsStack.tsx +29 -4
- package/src/components/form/useFormStorage.tsx +10 -4
- package/src/context/FormGroupCreditCardProvider.tsx +10 -3
- package/src/stories/form.stories.tsx +1 -3
- package/xy.config.ts +1 -3
@@ -2,7 +2,9 @@ import type { StandardTextFieldProps } from '@mui/material'
|
|
2
2
|
import { FormControl as MuiFormControl, TextField } from '@mui/material'
|
3
3
|
import type { FormControl } from '@xyo-network/react-form-group'
|
4
4
|
import { LabeledTextFieldWrapper } from '@xyo-network/react-shared'
|
5
|
-
import type {
|
5
|
+
import type {
|
6
|
+
ChangeEventHandler, FocusEventHandler, KeyboardEvent,
|
7
|
+
} from 'react'
|
6
8
|
import React, { forwardRef } from 'react'
|
7
9
|
|
8
10
|
export interface FormControlTextFieldProps extends StandardTextFieldProps {
|
@@ -12,7 +14,9 @@ export interface FormControlTextFieldProps extends StandardTextFieldProps {
|
|
12
14
|
}
|
13
15
|
|
14
16
|
export const FormControlTextField = forwardRef<HTMLDivElement, FormControlTextFieldProps>(
|
15
|
-
({
|
17
|
+
({
|
18
|
+
formControl, formControlError, fieldLabel = '', ...props
|
19
|
+
}, ref) => {
|
16
20
|
const { name } = formControl?.props ?? {}
|
17
21
|
|
18
22
|
const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {
|
@@ -18,15 +18,21 @@ export const NameWithFormControl: React.FC<NameWithFormControlProps> = ({
|
|
18
18
|
...props
|
19
19
|
}) => {
|
20
20
|
const args = useMemo(() => [fieldLabel, autoCompleteLabel, placeholder ?? ''], [autoCompleteLabel, fieldLabel, placeholder])
|
21
|
-
const {
|
22
|
-
|
21
|
+
const {
|
22
|
+
creditCardFormControl, error, inputRef, value,
|
23
|
+
} = useCreditCardFormControl(formControlName, NameFormControl, args)
|
24
|
+
const {
|
25
|
+
autoComplete, autoCorrect, id, inputMode, name, spellCheck, ...cvcProps
|
26
|
+
} = creditCardFormControl?.props ?? {}
|
23
27
|
return (
|
24
28
|
<FormControlTextField
|
25
29
|
fieldLabel={fieldLabel}
|
26
30
|
formControl={creditCardFormControl}
|
27
31
|
formControlError={error}
|
28
32
|
inputMode={inputMode}
|
29
|
-
inputProps={{
|
33
|
+
inputProps={{
|
34
|
+
'aria-label': `${fieldLabel} name on your card`, autoComplete, autoCorrect, id, name, spellCheck, tabIndex,
|
35
|
+
}}
|
30
36
|
inputRef={inputRef}
|
31
37
|
value={value}
|
32
38
|
{...cvcProps}
|
@@ -5,9 +5,15 @@ import type { WithFormControlProps } from '../WithFormControlProps.ts'
|
|
5
5
|
import { FormControlTextField } from './FormControlTextField.tsx'
|
6
6
|
import { useCreditCardFormControl } from './useCreditCardFormControl.tsx'
|
7
7
|
|
8
|
-
export const CreditCardZipWithFormControl: React.FC<WithFormControlProps> = ({
|
9
|
-
|
10
|
-
|
8
|
+
export const CreditCardZipWithFormControl: React.FC<WithFormControlProps> = ({
|
9
|
+
formControlName = 'zip', fieldLabel = 'Zip', ...props
|
10
|
+
}) => {
|
11
|
+
const {
|
12
|
+
creditCardFormControl, error, inputRef, value,
|
13
|
+
} = useCreditCardFormControl(formControlName, CreditCardZipFormControl)
|
14
|
+
const {
|
15
|
+
autoComplete, autoCorrect, id, inputMode, name, spellCheck, ...cvcProps
|
16
|
+
} = creditCardFormControl?.props ?? {}
|
11
17
|
|
12
18
|
return (
|
13
19
|
<FormControlTextField
|
@@ -15,7 +21,9 @@ export const CreditCardZipWithFormControl: React.FC<WithFormControlProps> = ({ f
|
|
15
21
|
formControl={creditCardFormControl}
|
16
22
|
formControlError={error}
|
17
23
|
inputMode={inputMode}
|
18
|
-
inputProps={{
|
24
|
+
inputProps={{
|
25
|
+
'aria-label': `${fieldLabel} code for your card`, autoComplete, autoCorrect, id, name, spellCheck,
|
26
|
+
}}
|
19
27
|
inputRef={inputRef}
|
20
28
|
value={value}
|
21
29
|
{...cvcProps}
|
@@ -5,9 +5,15 @@ import type { WithFormControlProps } from '../../WithFormControlProps.ts'
|
|
5
5
|
import { FormControlTextField } from '../FormControlTextField.tsx'
|
6
6
|
import { useCreditCardCvvFormControl } from './use.ts'
|
7
7
|
|
8
|
-
export const CreditCardCvvWithFormControl: React.FC<WithFormControlProps> = ({
|
9
|
-
|
10
|
-
|
8
|
+
export const CreditCardCvvWithFormControl: React.FC<WithFormControlProps> = ({
|
9
|
+
formControlName = 'cvc', fieldLabel = 'CVC', ...props
|
10
|
+
}) => {
|
11
|
+
const {
|
12
|
+
creditCardFormControl, error, inputRef, value,
|
13
|
+
} = useCreditCardCvvFormControl(formControlName, undefined, CreditCardCvvFormControl)
|
14
|
+
const {
|
15
|
+
autoComplete, autoCorrect, id, inputMode, name, spellCheck, ...cvcProps
|
16
|
+
} = creditCardFormControl?.props ?? {}
|
11
17
|
|
12
18
|
return (
|
13
19
|
<FormControlTextField
|
@@ -15,7 +21,9 @@ export const CreditCardCvvWithFormControl: React.FC<WithFormControlProps> = ({ f
|
|
15
21
|
formControl={creditCardFormControl}
|
16
22
|
formControlError={error}
|
17
23
|
inputMode={inputMode}
|
18
|
-
inputProps={{
|
24
|
+
inputProps={{
|
25
|
+
'aria-label': `${fieldLabel} number on the back of your card`, autoComplete, autoCorrect, id, name, spellCheck,
|
26
|
+
}}
|
19
27
|
inputRef={inputRef}
|
20
28
|
value={value}
|
21
29
|
{...cvcProps}
|
@@ -11,7 +11,9 @@ export const useCreditCardCvvFormControl = (
|
|
11
11
|
cardNumberControlName = 'cardNumber',
|
12
12
|
control?: new () => FormControlBase<StandardTextFieldProps>,
|
13
13
|
) => {
|
14
|
-
const {
|
14
|
+
const {
|
15
|
+
creditCardFormControl, error, value, inputRef,
|
16
|
+
} = useCreditCardFormControl(formControlName, control)
|
15
17
|
|
16
18
|
// only use FormGroupContext when name is passed
|
17
19
|
const { formGroup } = useFormGroupWithCreditCardInput(!!formControlName)
|
@@ -29,5 +31,7 @@ export const useCreditCardCvvFormControl = (
|
|
29
31
|
}
|
30
32
|
}, [creditCardFormControl, creditCardNumberFormControl])
|
31
33
|
|
32
|
-
return {
|
34
|
+
return {
|
35
|
+
creditCardFormControl, error, inputRef, value,
|
36
|
+
}
|
33
37
|
}
|
@@ -12,8 +12,12 @@ export const CreditCardNumberWithFormControl: React.FC<WithFormControlProps> = (
|
|
12
12
|
formControlName = 'cardNumber',
|
13
13
|
...props
|
14
14
|
}) => {
|
15
|
-
const {
|
16
|
-
|
15
|
+
const {
|
16
|
+
creditCardFormControl, error, inputRef, type, value,
|
17
|
+
} = useCreditCardNumberFormControl(formControlName, CreditCardNumberFormControl)
|
18
|
+
const {
|
19
|
+
autoComplete, autoCorrect, id, inputMode, name, spellCheck, ...cardProps
|
20
|
+
} = creditCardFormControl?.props ?? {}
|
17
21
|
|
18
22
|
return (
|
19
23
|
<FormControlTextField
|
@@ -22,7 +26,9 @@ export const CreditCardNumberWithFormControl: React.FC<WithFormControlProps> = (
|
|
22
26
|
formControlError={error}
|
23
27
|
inputRef={inputRef}
|
24
28
|
inputMode={inputMode}
|
25
|
-
inputProps={{
|
29
|
+
inputProps={{
|
30
|
+
'aria-label': fieldLabel, autoComplete, autoCorrect, id, inputMode, name, spellCheck,
|
31
|
+
}}
|
26
32
|
InputProps={{
|
27
33
|
startAdornment:
|
28
34
|
type.length > 0
|
@@ -7,7 +7,9 @@ import type { CreditCardOptions } from '../Options.ts'
|
|
7
7
|
import { useCreditCardFormControl } from '../useCreditCardFormControl.tsx'
|
8
8
|
|
9
9
|
export const useCreditCardNumberFormControl = (formControlName?: string, control?: new () => FormControlBase<StandardTextFieldProps>) => {
|
10
|
-
const {
|
10
|
+
const {
|
11
|
+
creditCardFormControl, error, inputRef, value,
|
12
|
+
} = useCreditCardFormControl(formControlName, control)
|
11
13
|
const [type, setType] = useState('' as keyof CreditCardOptions)
|
12
14
|
|
13
15
|
useEffect(() => {
|
@@ -26,5 +28,7 @@ export const useCreditCardNumberFormControl = (formControlName?: string, control
|
|
26
28
|
}
|
27
29
|
}, [creditCardFormControl, inputRef])
|
28
30
|
|
29
|
-
return {
|
31
|
+
return {
|
32
|
+
creditCardFormControl, error, inputRef, type, value,
|
33
|
+
}
|
30
34
|
}
|
@@ -1,18 +1,20 @@
|
|
1
1
|
import type { StandardTextFieldProps } from '@mui/material'
|
2
2
|
import type { FormControlBase, ValidControlValue } from '@xyo-network/react-form-group'
|
3
|
-
import {
|
3
|
+
import {
|
4
|
+
useMemo, useRef, useState,
|
5
|
+
} from 'react'
|
4
6
|
|
5
7
|
import { useFormGroupWithCreditCardInput } from '../../../context/index.ts'
|
6
8
|
|
7
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
8
|
-
const
|
10
|
+
const STABLE_DEFAULT_ARGS: any[] = [] as const
|
9
11
|
|
10
12
|
export const useCreditCardFormControl = (
|
11
13
|
formControlName?: string,
|
12
14
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
13
15
|
Control?: new (...args: any[]) => FormControlBase<StandardTextFieldProps>,
|
14
16
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
15
|
-
args: any[] =
|
17
|
+
args: any[] = STABLE_DEFAULT_ARGS,
|
16
18
|
) => {
|
17
19
|
const [error, setError] = useState('')
|
18
20
|
const [value, setValue] = useState<ValidControlValue>('')
|
@@ -32,5 +34,7 @@ export const useCreditCardFormControl = (
|
|
32
34
|
}
|
33
35
|
}, [Control, args, formControlName, formGroup])
|
34
36
|
|
35
|
-
return {
|
37
|
+
return {
|
38
|
+
creditCardFormControl, error, inputRef, value,
|
39
|
+
}
|
36
40
|
}
|
@@ -51,7 +51,12 @@ export const CreditCardFormFlexbox: React.FC<CreditCardFormProps> = ({
|
|
51
51
|
return (
|
52
52
|
<>
|
53
53
|
<ErrorRender error={error} />
|
54
|
-
<FlexCol
|
54
|
+
<FlexCol
|
55
|
+
sx={{ flexDirection: { md: 'row', xs: 'column' } }}
|
56
|
+
width="100%"
|
57
|
+
gap={2}
|
58
|
+
{...props}
|
59
|
+
>
|
55
60
|
<Stack flexDirection="column" sx={{ width: '100%' }} gap={2}>
|
56
61
|
<InputFieldsStack />
|
57
62
|
{ConfirmationButton
|
@@ -18,20 +18,45 @@ export const InputFieldsStack: React.FC<InputFieldsStackProps> = (props) => {
|
|
18
18
|
const { sx } = props
|
19
19
|
return (
|
20
20
|
<>
|
21
|
-
<Stack
|
21
|
+
<Stack
|
22
|
+
gap={2}
|
23
|
+
sx={{
|
24
|
+
flexDirection: { md: 'row', xs: 'column' },
|
25
|
+
...sx,
|
26
|
+
}}
|
27
|
+
{...props}
|
28
|
+
>
|
22
29
|
<NameWithFormControl autoCompleteLabel="given-name" fieldLabel="First" formControlName="firstName" placeholder="Jerry" />
|
23
30
|
<NameWithFormControl autoCompleteLabel="family-name" fieldLabel="Last" formControlName="lastName" placeholder="Smith" />
|
24
31
|
</Stack>
|
25
|
-
<Stack
|
32
|
+
<Stack
|
33
|
+
gap={2}
|
34
|
+
sx={{
|
35
|
+
flexDirection: { lg: 'row', xs: 'column' },
|
36
|
+
...sx,
|
37
|
+
}}
|
38
|
+
{...props}
|
39
|
+
>
|
26
40
|
<Stack width={{ lg: '50%', xs: '100%' }}>
|
27
41
|
<CreditCardNumberWithFormControl />
|
28
42
|
</Stack>
|
29
|
-
<Stack
|
43
|
+
<Stack
|
44
|
+
direction={{ lg: 'row', xs: 'column' }}
|
45
|
+
gap={2}
|
46
|
+
width={{ lg: '50%', xs: '100%' }}
|
47
|
+
>
|
30
48
|
<CreditCardCvvWithFormControl />
|
31
49
|
<CreditCardExpirationWithFormControl />
|
32
50
|
</Stack>
|
33
51
|
</Stack>
|
34
|
-
<Stack
|
52
|
+
<Stack
|
53
|
+
gap={2}
|
54
|
+
sx={{
|
55
|
+
flexDirection: { md: 'row', xs: 'column' },
|
56
|
+
...sx,
|
57
|
+
}}
|
58
|
+
{...props}
|
59
|
+
>
|
35
60
|
<Stack width={{ md: '25%', xs: '100%' }}>
|
36
61
|
<CreditCardZipWithFormControl />
|
37
62
|
</Stack>
|
@@ -5,7 +5,7 @@ import { ArchivistFormGroupStorage } from '@xyo-network/react-form-group'
|
|
5
5
|
|
6
6
|
import type { CreditCardInput } from '../../models/index.ts'
|
7
7
|
|
8
|
-
const
|
8
|
+
const STORAGE_NAME_SPACE = 'credit-card-fields' as const
|
9
9
|
|
10
10
|
const calculateTTL = (months = 6) => {
|
11
11
|
const MS_PER_DAY = 24 * 60 * 60 * 1000
|
@@ -17,11 +17,15 @@ export const useFormStorage = () => {
|
|
17
17
|
return usePromise(async () => {
|
18
18
|
const localStorageArchivist = await StorageArchivist.create({
|
19
19
|
account: 'random',
|
20
|
-
config: {
|
20
|
+
config: {
|
21
|
+
namespace: STORAGE_NAME_SPACE, schema: StorageArchivistConfigSchema, type: 'local',
|
22
|
+
},
|
21
23
|
})
|
22
24
|
const sessionStorageArchivist = await StorageArchivist.create({
|
23
25
|
account: 'random',
|
24
|
-
config: {
|
26
|
+
config: {
|
27
|
+
namespace: STORAGE_NAME_SPACE, schema: StorageArchivistConfigSchema, type: 'session',
|
28
|
+
},
|
25
29
|
})
|
26
30
|
|
27
31
|
const storage = {
|
@@ -29,6 +33,8 @@ export const useFormStorage = () => {
|
|
29
33
|
storage: new ArchivistFormGroupStorage(localStorageArchivist),
|
30
34
|
}
|
31
35
|
|
32
|
-
return {
|
36
|
+
return {
|
37
|
+
serialize: true, storage, ttlStorage: calculateTTL(),
|
38
|
+
} as FormGroupParams<CreditCardInput>
|
33
39
|
}, [])
|
34
40
|
}
|
@@ -11,15 +11,22 @@ export interface FormGroupCreditCardProviderProps<TStorage extends Payload = Pay
|
|
11
11
|
params?: FormGroupParams<TStorage>
|
12
12
|
}
|
13
13
|
|
14
|
-
export const FormGroupCreditCardProvider: React.FC<FormGroupCreditCardProviderProps<CreditCardInput>> = ({
|
14
|
+
export const FormGroupCreditCardProvider: React.FC<FormGroupCreditCardProviderProps<CreditCardInput>> = ({
|
15
|
+
children, params, ...props
|
16
|
+
}) => {
|
15
17
|
const formGroup = useMemo(() => {
|
16
18
|
const formGroup = new FormGroup<CreditCardInput, CreditCardInput>(params)
|
17
19
|
return formGroup
|
18
20
|
}, [params])
|
19
21
|
|
22
|
+
const value = useMemo(() => ({ formGroup, provided: true }), [formGroup])
|
23
|
+
|
20
24
|
return (
|
21
|
-
|
22
|
-
<FormGroupCreditCardContext.Provider
|
25
|
+
|
26
|
+
<FormGroupCreditCardContext.Provider
|
27
|
+
value={value}
|
28
|
+
{...props}
|
29
|
+
>
|
23
30
|
{children}
|
24
31
|
</FormGroupCreditCardContext.Provider>
|
25
32
|
)
|
@@ -5,9 +5,7 @@ import React from 'react'
|
|
5
5
|
import { CreditCardFormFlexboxWithFormGroupProvider } from '../components/index.ts'
|
6
6
|
import type { CreditCardInput } from '../models/index.ts'
|
7
7
|
|
8
|
-
export default {
|
9
|
-
title: 'form/CreditCardForm',
|
10
|
-
} as Meta<typeof CreditCardFormFlexboxWithFormGroupProvider>
|
8
|
+
export default { title: 'form/CreditCardForm' } as Meta<typeof CreditCardFormFlexboxWithFormGroupProvider>
|
11
9
|
|
12
10
|
const Template: StoryFn<typeof CreditCardFormFlexboxWithFormGroupProvider> = (args) => {
|
13
11
|
return <CreditCardFormFlexboxWithFormGroupProvider ConfirmationButton={Button} {...args} />
|