diff --git a/src/components/EditorSidePanel/TablesTab/FieldDetails.jsx b/src/components/EditorSidePanel/TablesTab/FieldDetails.jsx index cce6471..f8d99c0 100644 --- a/src/components/EditorSidePanel/TablesTab/FieldDetails.jsx +++ b/src/components/EditorSidePanel/TablesTab/FieldDetails.jsx @@ -12,6 +12,7 @@ import { IconDeleteStroked } from "@douyinfe/semi-icons"; import { useDiagram, useUndoRedo } from "../../../hooks"; import { useTranslation } from "react-i18next"; import { dbToTypes } from "../../../data/datatypes"; +import { databases } from "../../../data/databases"; export default function FieldDetails({ data, tid, index }) { const { t } = useTranslation(); @@ -98,7 +99,7 @@ export default function FieldDetails({ data, tid, index }) {
{t("size")}
updateField(tid, index, { size: value })} onFocus={(e) => setEditField({ size: e.target.value })} @@ -230,7 +231,9 @@ export default function FieldDetails({ data, tid, index }) { { setUndoStack((prev) => [ ...prev, @@ -260,6 +263,42 @@ export default function FieldDetails({ data, tid, index }) { }} /> + {databases[database].hasArrays && ( +
+
{t("declare_array")}
+ { + setUndoStack((prev) => [ + ...prev, + { + action: Action.EDIT, + element: ObjectType.TABLE, + component: "field", + tid: tid, + fid: index, + undo: { + [checkedValues.target.value]: !checkedValues.target.checked, + }, + redo: { + [checkedValues.target.value]: checkedValues.target.checked, + }, + message: t("edit_table", { + tableName: tables[tid].name, + extra: "[field]", + }), + }, + ]); + setRedoStack([]); + updateField(tid, index, { + isArray: checkedValues.target.checked, + increment: data.isArray ? data.increment : false, + }); + }} + /> +
+ )}
{t("comment")}