Fix import diagram

This commit is contained in:
1ilit 2024-07-08 04:03:41 +03:00
parent 09f9117b72
commit 159dcca4dc
3 changed files with 19 additions and 2 deletions

View File

@ -936,6 +936,7 @@ export default function ControlPanel({
relationships: relationships,
notes: notes,
subjectAreas: areas,
database: database,
...(databases[database].hasTypes && { types: types }),
...(databases[database].hasEnums && { enums: enums }),
title: title,
@ -996,6 +997,7 @@ export default function ControlPanel({
relationships: relationships,
notes: notes,
subjectAreas: areas,
database: database,
...(databases[database].hasTypes && { types: types }),
...(databases[database].hasEnums && { enums: enums }),
},

View File

@ -3,7 +3,7 @@ import {
jsonDiagramIsValid,
} from "../../../utils/validateSchema";
import { Upload, Banner } from "@douyinfe/semi-ui";
import { STATUS } from "../../../data/constants";
import { DB, STATUS } from "../../../data/constants";
import {
useAreas,
useEnums,
@ -16,7 +16,7 @@ import { useTranslation } from "react-i18next";
export default function ImportDiagram({ setImportData, error, setError }) {
const { areas } = useAreas();
const { notes } = useNotes();
const { tables, relationships } = useDiagram();
const { tables, relationships, database } = useDiagram();
const { types } = useTypes();
const { enums } = useEnums();
const { t } = useTranslation();
@ -72,6 +72,20 @@ export default function ImportDiagram({ setImportData, error, setError }) {
return;
}
}
if (!jsonObject.database) {
jsonObject.database = DB.GENERIC;
}
if (jsonObject.database !== database) {
setError({
type: STATUS.ERROR,
message:
"The imported diagram and the open diagram don't use matching databases.",
});
return;
}
setImportData(jsonObject);
if (diagramIsEmpty()) {
setError({

View File

@ -171,6 +171,7 @@ export const jsonSchema = {
items: { ...enumSchema },
},
title: { type: "string" },
database: { type: "string" },
},
required: ["tables", "relationships", "notes", "subjectAreas"],
};