Skip to content

Commit c82c7c1

Browse files
committed
修正
1 parent a15dd1c commit c82c7c1

2 files changed

Lines changed: 46 additions & 5 deletions

File tree

src/app/dummy_generator/DummyGenerator.tsx

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,13 @@ import { Select } from '@/components/common/Form/Select';
1818
import { TextArea } from '@/components/common/Form/TextArea';
1919
import { PageTitle } from '@/components/common/PageTitle';
2020
import { PanelHeader } from '@/components/common/PanelHeader';
21+
import { InputNumber } from '@/components/common/Form/InputNumber';
22+
import { COUNT_LIMIT, DEFAULT_VALUES } from '@/app/dummy_generator/useDummy';
2123

2224
export const DummyGenerator: FC = () => {
2325
const title = 'ダミー情報の生成';
24-
const { methods, fields, output, onClickAdd, onClickClear, onClickDelete } = useDummy();
26+
const width = 250;
27+
const { methods, fields, output, onClickAdd, onClickClear, onClickDelete, onClickGenerate } = useDummy();
2528
const { watch, control } = methods;
2629

2730
const source = fields.map((value, index) => {
@@ -63,7 +66,27 @@ export const DummyGenerator: FC = () => {
6366
<Col md={12} xs={24}>
6467
<Form layout="horizontal">
6568
<PanelGroup bordered>
66-
<Panel bordered header={<PanelHeader title="管理" />}></Panel>
69+
<Panel bordered header={<PanelHeader title="管理" />}>
70+
<FormRow label="生成数">
71+
<Controller
72+
render={({ field: { ref, ...field } }) => (
73+
<InputNumber
74+
{...field}
75+
style={{ width }}
76+
min={COUNT_LIMIT.min}
77+
max={COUNT_LIMIT.max}
78+
defaultValue={DEFAULT_VALUES.count}
79+
/>
80+
)}
81+
name="count"
82+
control={control}
83+
/>
84+
85+
</FormRow>
86+
<Button type="primary" onClick={onClickGenerate}>
87+
生成
88+
</Button>
89+
</Panel>
6790
<Panel
6891
bordered
6992
header={

src/app/dummy_generator/useDummy.ts

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,25 @@
11
import { useCallback } from 'react';
22
import { useFieldArray } from 'react-hook-form';
33
import { useCustomForm } from '@/components/common/Form/useCustomForm';
4+
import { useState } from 'react';
45

56
export 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+
1123
export 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

Comments
 (0)