From 7953b7fdc00eb14bb3bd44dadcffbc765c5dbf9d Mon Sep 17 00:00:00 2001 From: 1ilit Date: Fri, 14 Jun 2024 23:32:58 +0300 Subject: [PATCH] Add hasDefault and canIncrement to types --- .../EditorSidePanel/TablesTab/FieldDetails.jsx | 16 ++-------------- .../EditorSidePanel/TablesTab/TableField.jsx | 11 ++--------- src/data/datatypes.js | 12 +++++++++++- src/utils/importSQL/mysql.js | 1 + 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/src/components/EditorSidePanel/TablesTab/FieldDetails.jsx b/src/components/EditorSidePanel/TablesTab/FieldDetails.jsx index 35ba97b..0f10a6a 100644 --- a/src/components/EditorSidePanel/TablesTab/FieldDetails.jsx +++ b/src/components/EditorSidePanel/TablesTab/FieldDetails.jsx @@ -27,13 +27,7 @@ export default function FieldDetails({ data, tid, index }) { className="my-2" placeholder={t("default_value")} value={data.default} - disabled={ - data.type === "BLOB" || - data.type === "JSON" || - data.type === "TEXT" || - data.type === "UUID" || - data.increment - } + disabled={dbToTypes[database][data.type].hasDefault || data.increment} onChange={(value) => updateField(tid, index, { default: value })} onFocus={(e) => setEditField({ default: e.target.value })} onBlur={(e) => { @@ -236,13 +230,7 @@ export default function FieldDetails({ data, tid, index }) { { setUndoStack((prev) => [ ...prev, diff --git a/src/components/EditorSidePanel/TablesTab/TableField.jsx b/src/components/EditorSidePanel/TablesTab/TableField.jsx index c5b6ac4..8378b18 100644 --- a/src/components/EditorSidePanel/TablesTab/TableField.jsx +++ b/src/components/EditorSidePanel/TablesTab/TableField.jsx @@ -83,8 +83,7 @@ export default function TableField({ data, tid, index }) { ]); setRedoStack([]); const incr = - data.increment && - (value === "INT" || value === "BIGINT" || value === "SMALLINT"); + data.increment && dbToTypes[database][value].canIncrement; if (value === "ENUM" || value === "SET") { updateField(tid, index, { type: value, @@ -101,13 +100,7 @@ export default function TableField({ data, tid, index }) { size: dbToTypes[database][value].defaultSize, increment: incr, }); - } else if ( - value === "BLOB" || - value === "JSON" || - value === "UUID" || - value === "TEXT" || - incr - ) { + } else if (!dbToTypes[database][value].hasDefault || incr) { updateField(tid, index, { type: value, increment: incr, diff --git a/src/data/datatypes.js b/src/data/datatypes.js index f4dae25..a35937b 100644 --- a/src/data/datatypes.js +++ b/src/data/datatypes.js @@ -15,6 +15,7 @@ export const defaultTypes = { isSized: false, hasPrecision: false, defaultSize: null, + canIncrement: true, }, SMALLINT: { type: "SMALLINT", @@ -25,6 +26,7 @@ export const defaultTypes = { isSized: false, hasPrecision: false, defaultSize: null, + canIncrement: true, }, BIGINT: { type: "BIGINT", @@ -35,6 +37,7 @@ export const defaultTypes = { hasCheck: true, hasPrecision: false, defaultSize: null, + canIncrement: true, }, DECIMAL: { type: "DECIMAL", @@ -229,6 +232,7 @@ export const defaultTypes = { hasCheck: false, hasPrecision: false, defaultSize: null, + noDefault: true, }, JSON: { type: "JSON", @@ -237,6 +241,7 @@ export const defaultTypes = { hasCheck: false, hasPrecision: false, defaultSize: null, + noDefault: true, }, UUID: { type: "UUID", @@ -245,6 +250,7 @@ export const defaultTypes = { hasCheck: false, hasPrecision: false, defaultSize: null, + noDefault: true, }, ENUM: { type: "ENUM", @@ -270,6 +276,7 @@ export const defaultTypes = { isSized: false, hasPrecision: false, defaultSize: null, + noDefault: true, }, }; @@ -375,6 +382,7 @@ export const sqliteTypes = { isSized: false, hasPrecision: false, defaultSize: null, + canIncrement: true, }, REAL: { type: "REAL", @@ -430,7 +438,8 @@ export const sqliteTypes = { return field.default.length - 2 <= field.size; } return field.default.length <= field.size; - }, hasCheck: true, + }, + hasCheck: true, isSized: true, hasPrecision: false, defaultSize: 65535, @@ -443,6 +452,7 @@ export const sqliteTypes = { hasCheck: false, hasPrecision: false, defaultSize: null, + noDefault: true, }, TIME: { diff --git a/src/utils/importSQL/mysql.js b/src/utils/importSQL/mysql.js index 505257d..fb54612 100644 --- a/src/utils/importSQL/mysql.js +++ b/src/utils/importSQL/mysql.js @@ -1,6 +1,7 @@ import { Cardinality, DB } from "../../data/constants"; import { buildSQLFromAST } from "./shared"; +// eslint-disable-next-line no-unused-vars export function fromMySQL(ast, diagramDb = DB.GENERIC) { const tables = []; const relationships = [];