@@ -147,44 +147,51 @@ export default function Modal({
147
147
ast = parser . astify ( importSource . src , {
148
148
database : database === DB . GENERIC ? importDb : database ,
149
149
} ) ;
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 ;
160
154
155
+ setError ( { type : STATUS . ERROR , message } ) ;
161
156
return ;
162
157
}
163
158
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 ,
185
164
) ;
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
+ } ) ;
186
194
}
187
- setModal ( MODAL . NONE ) ;
188
195
} ;
189
196
190
197
const createNewDiagram = ( id ) => {
0 commit comments