From 11d2d2810d8da6d10b81b2d1082d46b54749b8ad Mon Sep 17 00:00:00 2001 From: 1ilit Date: Tue, 19 Sep 2023 15:47:29 +0300 Subject: [PATCH] read field info from modal form --- src/components/rect.jsx | 110 +++++++++++++++++++++++++++------------- 1 file changed, 76 insertions(+), 34 deletions(-) diff --git a/src/components/rect.jsx b/src/components/rect.jsx index acdbd04..849a564 100644 --- a/src/components/rect.jsx +++ b/src/components/rect.jsx @@ -23,12 +23,34 @@ const Rect = (props) => { const [name, setName] = useState("New Table"); const [visible, setVisible] = useState(false); const [editFieldVisible, setEditFieldVisible] = useState(-1); + const [fields, setFields] = useState([ + { + name: "id", + type: "UUID", + default: "", + primary: true, + unique: true, + notNull: true, + increment: true, + }, + ]); + const [field, setField] = useState({ + name: "", + type: "", + default: "", + primary: false, + unique: false, + notNull: false, + increment: false, + }); const handleOkEdit = () => { setEditFieldVisible(-1); }; const handleOk = () => { + console.log(field); + setFields((prev) => [...prev, field]); setVisible(false); }; @@ -58,27 +80,6 @@ const Rect = (props) => { "JSON", ]; - const [fields, setFields] = useState([ - { - name: "id", - type: "uuid", - default: "", - primary: true, - unique: true, - notNull: true, - increment: false, - }, - { - name: "name", - type: "varchar(20)", - default: "", - primary: false, - unique: false, - notNull: true, - increment: false, - }, - ]); - const height = fields.length * 36 + 40 + 4; return ( @@ -127,9 +128,7 @@ const Rect = (props) => { @@ -170,7 +169,7 @@ const Rect = (props) => { )} {e.increment && ( - Not null + Increment )}

@@ -304,14 +303,18 @@ const Rect = (props) => { title="Add new field" visible={visible} onOk={handleOk} - afterClose={handleOk} + afterClose={() => {}} onCancel={handleOk} centered closeOnEsc={true} okText="Add" cancelText="Cancel" > -

+ setField({ ...field, ...v })} + > @@ -331,15 +334,41 @@ const Rect = (props) => { optionList={sqlDataTypes.map((value, index) => { return { label: value, - value: index, + value: value, }; })} >
- Primary - Unique - Not null - Increment + + setField({ ...field, primary: !field.primary }) + } + > + Primary + + setField({ ...field, unique: !field.unique })} + > + Unique + + + setField({ ...field, notNull: !field.notNull }) + } + > + Not null + + + setField({ ...field, increment: !field.increment }) + } + > + Increment +
@@ -361,11 +390,23 @@ const Rect = (props) => { - + setField({ ...field, name: e.target.value })} + /> - + + setField({ ...field, default: e.target.value }) + } + /> @@ -380,6 +421,7 @@ const Rect = (props) => { value: index, }; })} + onChange={(e) => setField({ ...field, type: e.target.value })} >
Primary