From c0050200488312a70f62d29c92a0b62e5cdaf056 Mon Sep 17 00:00:00 2001 From: 1ilit Date: Fri, 5 Jul 2024 22:28:44 +0300 Subject: [PATCH] Add option to declare an array --- .../TablesTab/FieldDetails.jsx | 43 ++++++++++++++++++- src/context/DiagramContext.jsx | 2 +- src/data/databases.js | 1 + src/data/datatypes.js | 9 ---- src/i18n/locales/en.js | 1 + src/utils/exportSQL/postgres.js | 2 +- 6 files changed, 45 insertions(+), 13 deletions(-) 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")}