@@ -2,20 +2,24 @@ import React from 'react';
2
2
import { useRouter } from 'next/router' ;
3
3
import { useForm } from 'react-hook-form' ;
4
4
import { zodResolver } from '@hookform/resolvers/zod' ;
5
- import { recoverAccountInput , RecoverAccountInput } from '../../../schemas' ;
5
+ import { Accordion , AccordionDetails , AccordionSummary , InputAdornment , Tooltip , Typography } from '@mui/material' ;
6
+ import ArrowDownwardIcon from '@mui/icons-material/ArrowDownward' ;
7
+ import HelpOutlineIcon from '@mui/icons-material/HelpOutline' ;
8
+ import { RecoverAccountInput , recoverAccountInputByAccounts } from '../../../schemas' ;
6
9
import { BaseModal } from '../../BaseModal' ;
7
10
import { Button } from '../../Button' ;
8
11
import { TextField } from '../../TextField' ;
9
12
10
13
type Props = {
11
14
open : boolean ;
15
+ accountsKeys : number [ ] ;
12
16
onClose : VoidFunction ;
13
17
addAccount : ( name : string , id ?: number ) => number ;
14
18
} ;
15
19
16
20
const defaultValues : RecoverAccountInput = { name : '' } ;
17
21
18
- export const RecoverAccountModal = ( { open, onClose : _onClose , addAccount } : Props ) => {
22
+ export const RecoverAccountModal = ( { open, onClose : _onClose , accountsKeys , addAccount } : Props ) => {
19
23
const router = useRouter ( ) ;
20
24
21
25
const {
@@ -24,7 +28,7 @@ export const RecoverAccountModal = ({ open, onClose: _onClose, addAccount }: Pro
24
28
handleSubmit,
25
29
formState : { errors } ,
26
30
} = useForm < RecoverAccountInput > ( {
27
- resolver : zodResolver ( recoverAccountInput ) ,
31
+ resolver : zodResolver ( recoverAccountInputByAccounts ( accountsKeys ) ) ,
28
32
defaultValues,
29
33
} ) ;
30
34
@@ -35,7 +39,7 @@ export const RecoverAccountModal = ({ open, onClose: _onClose, addAccount }: Pro
35
39
} ;
36
40
37
41
const onSubmit = ( formData : RecoverAccountInput ) => {
38
- const accountId = addAccount ( formData . name ) ;
42
+ const accountId = addAccount ( formData . name , formData . id ) ;
39
43
40
44
router . push ( {
41
45
pathname : '/accounts/vault/[accountId]' ,
@@ -67,6 +71,34 @@ export const RecoverAccountModal = ({ open, onClose: _onClose, addAccount }: Pro
67
71
autoFocus
68
72
{ ...register ( 'name' ) }
69
73
/>
74
+ < Typography > </ Typography >
75
+ < Accordion >
76
+ < AccordionSummary expandIcon = { < ArrowDownwardIcon /> } >
77
+ < Typography component = 'span' > Advanced</ Typography >
78
+ </ AccordionSummary >
79
+ < AccordionDetails >
80
+ < TextField
81
+ id = 'accountId'
82
+ label = 'Account Id (Optional)'
83
+ placeholder = 'e.g. 1,2,...'
84
+ error = { errors . id ?. message }
85
+ autoFocus
86
+ inputProps = { { type : 'number' } }
87
+ inputMode = 'numeric'
88
+ { ...register ( 'id' ) }
89
+ endAdornment = {
90
+ < InputAdornment position = 'end' >
91
+ < Tooltip
92
+ title = 'Vault Account ID is a unique positive integer that defines each vault.
93
+ If you don’t provide this value, the utility will automatically use a new number by adding to the latest number used.'
94
+ >
95
+ < HelpOutlineIcon />
96
+ </ Tooltip >
97
+ </ InputAdornment >
98
+ }
99
+ />
100
+ </ AccordionDetails >
101
+ </ Accordion >
70
102
</ BaseModal >
71
103
) ;
72
104
} ;
0 commit comments