make dit modal functional

This commit is contained in:
1ilit 2023-09-19 15:47:31 +03:00
parent 79874a0413
commit c10399d90e

View File

@ -46,6 +46,21 @@ const Rect = (props) => {
}); });
const handleOkEdit = () => { const handleOkEdit = () => {
setFields((prev) => {
// console.log(field);
const updatedFields = [...prev];
updatedFields[editFieldVisible] = { ...field };
return updatedFields;
});
setField({
name: "",
type: "",
default: "",
primary: false,
unique: false,
notNull: false,
increment: false,
});
setEditFieldVisible(-1); setEditFieldVisible(-1);
}; };
@ -65,6 +80,13 @@ const Rect = (props) => {
const height = fields.length * 36 + 40 + 4; const height = fields.length * 36 + 40 + 4;
const onCheck = (checkedValues) => {
setField({
...field,
[checkedValues.target.value]: checkedValues.target.checked,
});
};
return ( return (
<g> <g>
<foreignObject <foreignObject
@ -181,7 +203,10 @@ const Rect = (props) => {
<div> <div>
<button <button
className="btn bg-sky-800 text-white text-xs py-1 px-2 me-2 opacity-80" className="btn bg-sky-800 text-white text-xs py-1 px-2 me-2 opacity-80"
onClick={(e) => setEditFieldVisible(i)} onClick={(ev) => {
setEditFieldVisible(i);
setField({ ...e });
}}
> >
<IconEdit /> <IconEdit />
</button> </button>
@ -362,21 +387,26 @@ const Rect = (props) => {
}`} }`}
visible={editFieldVisible !== -1} visible={editFieldVisible !== -1}
onOk={handleOkEdit} onOk={handleOkEdit}
afterClose={handleOkEdit} onCancel={() => setEditFieldVisible(-1)}
onCancel={handleOkEdit}
centered centered
closeOnEsc={true} closeOnEsc={true}
okText="Edit" okText="Edit"
cancelText="Cancel" cancelText="Cancel"
> >
<Form labelPosition="left" labelAlign="right"> <Form
labelPosition="left"
labelAlign="right"
onValueChange={(v) => setField({ ...field, ...v })}
>
<Row> <Row>
<Col span={11}> <Col span={11}>
<Form.Input <Form.Input
field="name" field="name"
label="Name" label="Name"
trigger="blur" trigger="blur"
onChange={(e) => setField({ ...field, name: e.target.value })} initValue={
editFieldVisible !== -1 ? fields[editFieldVisible].name : ""
}
/> />
</Col> </Col>
<Col span={2}></Col> <Col span={2}></Col>
@ -385,8 +415,10 @@ const Rect = (props) => {
field="default" field="default"
label="Default" label="Default"
trigger="blur" trigger="blur"
onChange={(e) => initValue={
setField({ ...field, default: e.target.value }) editFieldVisible !== -1
? fields[editFieldVisible].default
: ""
} }
/> />
</Col> </Col>
@ -400,16 +432,58 @@ const Rect = (props) => {
optionList={sqlDataTypes.map((value, index) => { optionList={sqlDataTypes.map((value, index) => {
return { return {
label: value, label: value,
value: index, value: value,
}; };
})} })}
onChange={(e) => setField({ ...field, type: e.target.value })} initValue={
editFieldVisible !== -1 ? fields[editFieldVisible].type : ""
}
></Form.Select> ></Form.Select>
<div className="flex justify-around mt-2"> <div className="flex justify-around mt-2">
<Checkbox value="A">Primary</Checkbox> <Checkbox
<Checkbox value="B">Unique</Checkbox> value="primary"
<Checkbox value="C">Not null</Checkbox> onChange={onCheck}
<Checkbox value="D">Increment</Checkbox> defaultChecked={
editFieldVisible !== -1
? fields[editFieldVisible].primary
: undefined
}
>
Primary
</Checkbox>
<Checkbox
value="unique"
onChange={onCheck}
defaultChecked={
editFieldVisible !== -1
? fields[editFieldVisible].unique
: undefined
}
>
Unique
</Checkbox>
<Checkbox
value="notNull"
onChange={onCheck}
defaultChecked={
editFieldVisible !== -1
? fields[editFieldVisible].notNull
: undefined
}
>
Not null
</Checkbox>
<Checkbox
value="increment"
onChange={onCheck}
defaultChecked={
editFieldVisible !== -1
? fields[editFieldVisible].increment
: undefined
}
>
Increment
</Checkbox>
</div> </div>
</Col> </Col>
</Row> </Row>