mirror of
https://github.com/drawdb-io/drawdb.git
synced 2026-02-12 02:00:40 +08:00
Move all type data to datatypes.js
This commit is contained in:
@@ -9,7 +9,7 @@ export default function Issues() {
|
||||
const { types } = useTypes();
|
||||
const { t } = useTranslation();
|
||||
const { settings } = useSettings();
|
||||
const { tables, relationships } = useTables();
|
||||
const { tables, relationships, database } = useTables();
|
||||
const [issues, setIssues] = useState([]);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -18,6 +18,7 @@ export default function Issues() {
|
||||
tables: tables,
|
||||
relationships: relationships,
|
||||
types: types,
|
||||
database: database,
|
||||
});
|
||||
|
||||
if (!arrayIsEqual(newIssues, issues)) {
|
||||
@@ -26,7 +27,7 @@ export default function Issues() {
|
||||
};
|
||||
|
||||
findIssues();
|
||||
}, [tables, relationships, issues, types]);
|
||||
}, [tables, relationships, issues, types, database]);
|
||||
|
||||
return (
|
||||
<Collapse keepDOM lazyRender style={{ width: "100%" }}>
|
||||
|
||||
@@ -9,13 +9,13 @@ import {
|
||||
} from "@douyinfe/semi-ui";
|
||||
import { Action, ObjectType } from "../../../data/constants";
|
||||
import { IconDeleteStroked } from "@douyinfe/semi-icons";
|
||||
import { hasCheck, hasPrecision, isSized } from "../../../utils/toSQL";
|
||||
import { useTables, useUndoRedo } from "../../../hooks";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { dbToTypes } from "../../../data/datatypes";
|
||||
|
||||
export default function FieldDetails({ data, tid, index }) {
|
||||
const { t } = useTranslation();
|
||||
const { tables } = useTables();
|
||||
const { tables, database } = useTables();
|
||||
const { setUndoStack, setRedoStack } = useUndoRedo();
|
||||
const { updateField, deleteField } = useTables();
|
||||
const [editField, setEditField] = useState({});
|
||||
@@ -99,7 +99,7 @@ export default function FieldDetails({ data, tid, index }) {
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{isSized(data.type) && (
|
||||
{dbToTypes[database][data.type].isSized && (
|
||||
<>
|
||||
<div className="font-semibold">{t("size")}</div>
|
||||
<InputNumber
|
||||
@@ -131,7 +131,7 @@ export default function FieldDetails({ data, tid, index }) {
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{hasPrecision(data.type) && (
|
||||
{dbToTypes[database][data.type].hasPrecision && (
|
||||
<>
|
||||
<div className="font-semibold">{t("precision")}</div>
|
||||
<Input
|
||||
@@ -168,7 +168,7 @@ export default function FieldDetails({ data, tid, index }) {
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{hasCheck(data.type) && (
|
||||
{dbToTypes[database][data.type].hasCheck && (
|
||||
<>
|
||||
<div className="font-semibold">{t("check")}</div>
|
||||
<Input
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { Action, ObjectType } from "../../../data/constants";
|
||||
import { Row, Col, Input, Button, Popover, Select } from "@douyinfe/semi-ui";
|
||||
import { IconMore, IconKeyStroked } from "@douyinfe/semi-icons";
|
||||
import { getSize, hasCheck, hasPrecision, isSized } from "../../../utils/toSQL";
|
||||
import { useTables, useTypes, useUndoRedo } from "../../../hooks";
|
||||
import { useState } from "react";
|
||||
import FieldDetails from "./FieldDetails";
|
||||
@@ -51,7 +50,7 @@ export default function TableField({ data, tid, index }) {
|
||||
<Select
|
||||
className="w-full"
|
||||
optionList={[
|
||||
...dbToTypes[database].map((value) => ({
|
||||
...Object.keys(dbToTypes[database]).map((value) => ({
|
||||
label: value,
|
||||
value: value,
|
||||
})),
|
||||
@@ -93,10 +92,13 @@ export default function TableField({ data, tid, index }) {
|
||||
values: data.values ? [...data.values] : [],
|
||||
increment: incr,
|
||||
});
|
||||
} else if (isSized(value) || hasPrecision(value)) {
|
||||
} else if (
|
||||
dbToTypes[database][value].isSized ||
|
||||
dbToTypes[database][value].hasPrecision
|
||||
) {
|
||||
updateField(tid, index, {
|
||||
type: value,
|
||||
size: getSize(value),
|
||||
size: dbToTypes[database][value].defaultSize,
|
||||
increment: incr,
|
||||
});
|
||||
} else if (
|
||||
@@ -113,7 +115,7 @@ export default function TableField({ data, tid, index }) {
|
||||
size: "",
|
||||
values: [],
|
||||
});
|
||||
} else if (hasCheck(value)) {
|
||||
} else if (dbToTypes[database][value].hasCheck) {
|
||||
updateField(tid, index, {
|
||||
type: value,
|
||||
check: "",
|
||||
|
||||
@@ -11,7 +11,6 @@ import {
|
||||
Popover,
|
||||
} from "@douyinfe/semi-ui";
|
||||
import { IconDeleteStroked, IconMore } from "@douyinfe/semi-icons";
|
||||
import { isSized, hasPrecision, getSize } from "../../../utils/toSQL";
|
||||
import { useUndoRedo, useTypes, useTables } from "../../../hooks";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { dbToTypes } from "../../../data/datatypes";
|
||||
@@ -64,7 +63,7 @@ export default function TypeField({ data, tid, fid }) {
|
||||
<Select
|
||||
className="w-full"
|
||||
optionList={[
|
||||
...dbToTypes[database].map((value) => ({
|
||||
...Object.keys(dbToTypes[database]).map((value) => ({
|
||||
label: value,
|
||||
value: value,
|
||||
})),
|
||||
@@ -112,11 +111,14 @@ export default function TypeField({ data, tid, fid }) {
|
||||
: e,
|
||||
),
|
||||
});
|
||||
} else if (isSized(value) || hasPrecision(value)) {
|
||||
} else if (
|
||||
dbToTypes[database][value].isSized ||
|
||||
dbToTypes[database][value].hasPrecision
|
||||
) {
|
||||
updateType(tid, {
|
||||
fields: types[tid].fields.map((e, id) =>
|
||||
id === fid
|
||||
? { ...data, type: value, size: getSize(value) }
|
||||
? { ...data, type: value, size: dbToTypes[database][value].defaultSize }
|
||||
: e,
|
||||
),
|
||||
});
|
||||
@@ -184,7 +186,7 @@ export default function TypeField({ data, tid, fid }) {
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{isSized(data.type) && (
|
||||
{dbToTypes[database][data.type].isSized && (
|
||||
<>
|
||||
<div className="font-semibold">{t("size")}</div>
|
||||
<InputNumber
|
||||
@@ -222,7 +224,7 @@ export default function TypeField({ data, tid, fid }) {
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{hasPrecision(data.type) && (
|
||||
{dbToTypes[database][data.type].hasPrecision && (
|
||||
<>
|
||||
<div className="font-semibold">{t("precision")}</div>
|
||||
<Input
|
||||
|
||||
Reference in New Issue
Block a user