11import { useCallback } from 'react' ;
22import { useFieldArray } from 'react-hook-form' ;
33import { useCustomForm } from '@/components/common/Form/useCustomForm' ;
4+ import { useState } from 'react' ;
45
56export type DummyForm = {
67 count : number ;
78 format : 'csv' | 'tsv' | 'json' ;
8- items : any ;
9+ items : any [ ] ;
910} ;
1011
12+ export const COUNT_LIMIT = {
13+ min : 1 ,
14+ max : 1000 ,
15+ } ;
16+
17+ export const DEFAULT_VALUES : DummyForm = {
18+ count : 1 ,
19+ format : 'csv' ,
20+ items : [ ] ,
21+ }
22+
1123export interface RecordType {
1224 key : number ;
1325 content : any ;
@@ -18,11 +30,12 @@ export const useDummy = () => {
1830 const methods = useCustomForm < DummyForm > ( {
1931 shouldUnregister : true ,
2032 } ) ;
21- const { control } = methods ;
33+ const { control, getValues } = methods ;
2234 const { fields, append, remove } = useFieldArray ( {
2335 control,
2436 name : 'items' ,
2537 } ) ;
38+ const [ output , setOutput ] = useState < string > ( '' ) ;
2639
2740 const onClickAdd = useCallback ( ( ) => {
2841 append ( { dataType : '' } ) ;
@@ -39,7 +52,11 @@ export const useDummy = () => {
3952 [ remove ] ,
4053 ) ;
4154
42- const output = JSON . stringify ( methods . watch ( ) , null , ` ` ) ;
55+ const onClickGenerate = useCallback ( ( ) => {
56+ const values = getValues ( ) ;
57+ setOutput ( JSON . stringify ( values , null , ` ` ) ) ;
58+ } , [ getValues ] ) ;
59+
4360
4461 return {
4562 methods,
@@ -48,5 +65,6 @@ export const useDummy = () => {
4865 onClickAdd,
4966 onClickClear,
5067 onClickDelete,
68+ onClickGenerate,
5169 } ;
5270} ;
0 commit comments