Skip to content

Commit bc35a61

Browse files
committed
Show import failed error
1 parent 28ec12b commit bc35a61

File tree

1 file changed

+39
-32
lines changed

1 file changed

+39
-32
lines changed

src/components/EditorHeader/Modal/Modal.jsx

+39-32
Original file line numberDiff line numberDiff line change
@@ -147,44 +147,51 @@ export default function Modal({
147147
ast = parser.astify(importSource.src, {
148148
database: database === DB.GENERIC ? importDb : database,
149149
});
150-
} catch (err) {
151-
let message = err.message;
152-
if (err.location) {
153-
message = err.name + " [Ln " + err.location.start.line + ", Col " + err.location.start.column + "]: " + err.message;
154-
}
155-
156-
setError({
157-
type: STATUS.ERROR,
158-
message
159-
});
150+
} catch (error) {
151+
const message = error.location
152+
? `${error.name} [Ln ${error.location.start.line}, Col ${error.location.start.column}]: ${error.message}`
153+
: error.message;
160154

155+
setError({ type: STATUS.ERROR, message });
161156
return;
162157
}
163158

164-
const d = importSQL(
165-
ast,
166-
database === DB.GENERIC ? importDb : database,
167-
database,
168-
);
169-
if (importSource.overwrite) {
170-
setTables(d.tables);
171-
setRelationships(d.relationships);
172-
setTransform((prev) => ({ ...prev, pan: { x: 0, y: 0 } }));
173-
setNotes([]);
174-
setAreas([]);
175-
if (databases[database].hasTypes) setTypes(d.types ?? []);
176-
if (databases[database].hasEnums) setEnums(d.enums ?? []);
177-
setUndoStack([]);
178-
setRedoStack([]);
179-
} else {
180-
setTables((prev) =>
181-
[...prev, ...d.tables].map((t, i) => ({ ...t, id: i })),
182-
);
183-
setRelationships((prev) =>
184-
[...prev, ...d.relationships].map((r, i) => ({ ...r, id: i })),
159+
try {
160+
const diagramData = importSQL(
161+
ast,
162+
database === DB.GENERIC ? importDb : database,
163+
database,
185164
);
165+
166+
if (importSource.overwrite) {
167+
setTables(diagramData.tables);
168+
setRelationships(diagramData.relationships);
169+
setTransform((prev) => ({ ...prev, pan: { x: 0, y: 0 } }));
170+
setNotes([]);
171+
setAreas([]);
172+
if (databases[database].hasTypes) setTypes(diagramData.types ?? []);
173+
if (databases[database].hasEnums) setEnums(diagramData.enums ?? []);
174+
setUndoStack([]);
175+
setRedoStack([]);
176+
} else {
177+
setTables((prev) =>
178+
[...prev, ...diagramData.tables].map((t, i) => ({ ...t, id: i })),
179+
);
180+
setRelationships((prev) =>
181+
[...prev, ...diagramData.relationships].map((r, i) => ({
182+
...r,
183+
id: i,
184+
})),
185+
);
186+
}
187+
188+
setModal(MODAL.NONE);
189+
} catch (error) {
190+
setError({
191+
type: STATUS.ERROR,
192+
message: `Please check for syntax errors or let us know about the error.`,
193+
});
186194
}
187-
setModal(MODAL.NONE);
188195
};
189196

190197
const createNewDiagram = (id) => {

0 commit comments

Comments
 (0)