@@ -5,27 +5,15 @@ import {
55 useCallback ,
66 createContext ,
77 useContext ,
8- useState ,
98} from 'react' ;
109import { FormProvider , useForm } from 'react-hook-form' ;
1110import invariant from 'tiny-invariant' ;
1211
13- import { useFormControllerRetry } from 'shared/hook-form/form-controller/use-form-controller-retry-delegate' ;
1412import { useVaultInfo } from 'modules/vaults' ;
1513import { useMint } from 'features/adjustment/mint/hooks' ;
1614
17- import {
18- FormController ,
19- FormControllerContext ,
20- FormControllerContextValueType ,
21- } from 'shared/hook-form/form-controller' ;
15+ import { FormController } from 'shared/hook-form/form-controller' ;
2216import { MintFormSchema } from 'features/adjustment/mint/types' ;
23- import { SubmitModal } from 'shared/components' ;
24- import {
25- SubmitPayload ,
26- SubmitStep ,
27- SubmitStepEnum ,
28- } from 'shared/components/submit-modal/types' ;
2917import { Address } from 'viem' ;
3018
3119type MintDataContextValue = {
@@ -48,20 +36,17 @@ export const useMintFormData = () => {
4836} ;
4937
5038export const MintFormProvider : FC < { children : ReactNode } > = ( { children } ) => {
51- const [ submitStep , setSubmitStep ] = useState < {
52- step : SubmitStep ;
53- tx ?: Address ;
54- } > ( ( ) => ( { step : SubmitStepEnum . edit } ) ) ;
5539 const formObject = useForm < MintFormSchema > ( {
5640 defaultValues : {
5741 amount : undefined ,
5842 token : 'stETH' ,
5943 recipient : '' as Address ,
6044 } ,
6145 mode : 'all' ,
46+ // TODO: validation
6247 reValidateMode : 'onChange' ,
6348 } ) ;
64- const { callMint } = useMint ( ) ;
49+ const { mint , retryEvent } = useMint ( ) ;
6550 const { activeVault } = useVaultInfo ( ) ;
6651
6752 const mintData = useMemo ( ( ) => {
@@ -76,55 +61,25 @@ export const MintFormProvider: FC<{ children: ReactNode }> = ({ children }) => {
7661 } ;
7762 } , [ activeVault ] ) ;
7863
79- const { retryEvent, retryFire } = useFormControllerRetry ( ) ;
80- const setModalState = useCallback ( ( submitStep : SubmitPayload ) => {
81- setSubmitStep ( submitStep ) ;
82- } , [ ] ) ;
83-
8464 const onSubmit = useCallback (
8565 async ( { recipient, amount, token } : MintFormSchema ) => {
86- if ( amount && recipient ) {
87- try {
88- setModalState ( { step : SubmitStepEnum . initiate } ) ;
89- const tx = await callMint ( recipient , amount , token , setModalState ) ;
90- setModalState ( { step : SubmitStepEnum . overview , tx } ) ;
91- return true ;
92- } catch ( err ) {
93- if (
94- err instanceof Error &&
95- err . message . includes ( 'User rejected the request' )
96- ) {
97- setModalState ( { step : SubmitStepEnum . reject } ) ;
98- } else {
99- setModalState ( { step : SubmitStepEnum . error } ) ;
100- }
101- }
102- }
66+ // TODO: add validation, remove stub
67+ if ( ! recipient || ! amount ) return false ;
68+ invariant ( recipient , '[MintFormProvider] recipient is undefined' ) ;
69+ invariant ( amount , '[MintFormProvider] amount is undefined' ) ;
70+ invariant ( token , '[MintFormProvider] token is undefined' ) ;
10371
104- return false ;
72+ return await mint ( recipient , amount , token ) ;
10573 } ,
106- // eslint-disable-next-line react-hooks/exhaustive-deps
107- [ callMint ] ,
74+ [ mint ] ,
10875 ) ;
10976
110- const formControllerValue : FormControllerContextValueType < MintFormSchema > =
111- useMemo (
112- ( ) => ( {
113- onSubmit,
114- retryEvent,
115- retryFire,
116- onReset : formObject . reset ,
117- } ) ,
118- [ retryFire , retryEvent , onSubmit , formObject . reset ] ,
119- ) ;
120-
12177 return (
12278 < MintDataContext . Provider value = { mintData } >
12379 < FormProvider { ...formObject } >
124- < FormControllerContext . Provider value = { formControllerValue } >
125- < FormController > { children } </ FormController >
126- < SubmitModal submitStep = { submitStep } setModalState = { setModalState } />
127- </ FormControllerContext . Provider >
80+ < FormController onSubmit = { onSubmit } retryEvent = { retryEvent } >
81+ { children }
82+ </ FormController >
12883 </ FormProvider >
12984 </ MintDataContext . Provider >
13085 ) ;
0 commit comments