From ca7facb02cad53cc8d7605fabe151c1b5ad9e74e Mon Sep 17 00:00:00 2001 From: Guy Ben-Aharon Date: Wed, 21 Aug 2024 10:43:20 +0300 Subject: [PATCH] create another diagram --- .../redo-undo-stack-provider.tsx | 2 - .../create-diagram-dialog.tsx | 80 ++++++++++++++----- .../editor-page/top-navbar/top-navbar.tsx | 22 ++--- 3 files changed, 66 insertions(+), 38 deletions(-) diff --git a/src/context/history-context/redo-undo-stack-provider.tsx b/src/context/history-context/redo-undo-stack-provider.tsx index 16986dd8..3eb66c4d 100644 --- a/src/context/history-context/redo-undo-stack-provider.tsx +++ b/src/context/history-context/redo-undo-stack-provider.tsx @@ -11,8 +11,6 @@ export const RedoUndoStackProvider: React.FC = ({ const [undoStack, setUndoStack] = React.useState([]); const [redoStack, setRedoStack] = React.useState([]); - console.log({ undoStack }); - const addRedoAction: RedoUndoStackContext['addRedoAction'] = useCallback( (action) => { setRedoStack((prev) => [...prev, action]); diff --git a/src/dialogs/create-diagram-dialog/create-diagram-dialog.tsx b/src/dialogs/create-diagram-dialog/create-diagram-dialog.tsx index f22282fb..9f6ce71e 100644 --- a/src/dialogs/create-diagram-dialog/create-diagram-dialog.tsx +++ b/src/dialogs/create-diagram-dialog/create-diagram-dialog.tsx @@ -25,6 +25,7 @@ import { loadDatabaseMetadata, } from '@/lib/data/import-metadata/metadata-types/database-metadata'; import { generateId } from '@/lib/utils'; +import { useChartDB } from '@/hooks/use-chartdb'; enum CreateDiagramDialogStep { SELECT_DATABASE = 'SELECT_DATABASE', @@ -38,6 +39,7 @@ export interface CreateDiagramDialogProps { export const CreateDiagramDialog: React.FC = ({ dialog, }) => { + const { diagramId } = useChartDB(); const [databaseType, setDatabaseType] = React.useState( DatabaseType.GENERIC ); @@ -59,6 +61,8 @@ export const CreateDiagramDialog: React.FC = ({ fetchDiagrams(); }, [listDiagrams, setDiagramNumber]); + const hasExistingDiagram = (diagramId ?? '').trim().length !== 0; + const createNewDiagram = useCallback(async () => { let diagram: Diagram = { id: generateId(), @@ -79,6 +83,7 @@ export const CreateDiagramDialog: React.FC = ({ await addDiagram({ diagram }); await updateConfig({ defaultDiagramId: diagram.id }); + setDiagramNumber(diagramNumber + 1); closeCreateDiagramDialog(); navigate(`/diagrams/${diagram.id}`); }, [ @@ -196,42 +201,58 @@ export const CreateDiagramDialog: React.FC = ({ case CreateDiagramDialogStep.SELECT_DATABASE: return ( - + {hasExistingDiagram ? ( + + + + ) : ( +
+ )} + {/* */} +
- - - +
+ {/*
*/}
); case CreateDiagramDialogStep.IMPORT_DATABASE: return ( - - - + {/* */} + + {/* */}