mirror of
https://github.com/chartdb/chartdb.git
synced 2025-11-16 20:01:48 +00:00
delete diagram
This commit is contained in:
@@ -11,8 +11,9 @@ export interface EmptyStateProps {
|
|||||||
export const EmptyState = forwardRef<
|
export const EmptyState = forwardRef<
|
||||||
HTMLDivElement,
|
HTMLDivElement,
|
||||||
React.HTMLAttributes<HTMLDivElement> & EmptyStateProps
|
React.HTMLAttributes<HTMLDivElement> & EmptyStateProps
|
||||||
>(({ title, description, className }) => (
|
>(({ title, description, className }, ref) => (
|
||||||
<div
|
<div
|
||||||
|
ref={ref}
|
||||||
className={cn(
|
className={cn(
|
||||||
'flex flex-col items-center justify-center space-y-1',
|
'flex flex-col items-center justify-center space-y-1',
|
||||||
className
|
className
|
||||||
@@ -25,3 +26,5 @@ export const EmptyState = forwardRef<
|
|||||||
</Label>
|
</Label>
|
||||||
</div>
|
</div>
|
||||||
));
|
));
|
||||||
|
|
||||||
|
EmptyState.displayName = 'EmptyState';
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import { useStorage } from '@/hooks/use-storage';
|
|||||||
import { useRedoUndoStack } from '@/hooks/use-redo-undo-stack';
|
import { useRedoUndoStack } from '@/hooks/use-redo-undo-stack';
|
||||||
import { Diagram } from '@/lib/domain/diagram';
|
import { Diagram } from '@/lib/domain/diagram';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
|
import { useConfig } from '@/hooks/use-config';
|
||||||
|
|
||||||
export const ChartDBProvider: React.FC<React.PropsWithChildren> = ({
|
export const ChartDBProvider: React.FC<React.PropsWithChildren> = ({
|
||||||
children,
|
children,
|
||||||
@@ -21,6 +22,7 @@ export const ChartDBProvider: React.FC<React.PropsWithChildren> = ({
|
|||||||
useRedoUndoStack();
|
useRedoUndoStack();
|
||||||
const [diagramId, setDiagramId] = useState('');
|
const [diagramId, setDiagramId] = useState('');
|
||||||
const [diagramName, setDiagramName] = useState('');
|
const [diagramName, setDiagramName] = useState('');
|
||||||
|
const { updateConfig } = useConfig();
|
||||||
const [diagramCreatedAt, setDiagramCreatedAt] = useState<Date>(new Date());
|
const [diagramCreatedAt, setDiagramCreatedAt] = useState<Date>(new Date());
|
||||||
const [diagramUpdatedAt, setDiagramUpdatedAt] = useState<Date>(new Date());
|
const [diagramUpdatedAt, setDiagramUpdatedAt] = useState<Date>(new Date());
|
||||||
const [databaseType, setDatabaseType] = useState<DatabaseType>(
|
const [databaseType, setDatabaseType] = useState<DatabaseType>(
|
||||||
@@ -69,6 +71,14 @@ export const ChartDBProvider: React.FC<React.PropsWithChildren> = ({
|
|||||||
|
|
||||||
const deleteDiagram: ChartDBContext['deleteDiagram'] =
|
const deleteDiagram: ChartDBContext['deleteDiagram'] =
|
||||||
useCallback(async () => {
|
useCallback(async () => {
|
||||||
|
setDiagramId('');
|
||||||
|
setDiagramName('');
|
||||||
|
setDatabaseType(DatabaseType.GENERIC);
|
||||||
|
setTables([]);
|
||||||
|
setRelationships([]);
|
||||||
|
resetRedoStack();
|
||||||
|
resetUndoStack();
|
||||||
|
|
||||||
const [config] = await Promise.all([
|
const [config] = await Promise.all([
|
||||||
db.getConfig(),
|
db.getConfig(),
|
||||||
db.deleteDiagramTables(diagramId),
|
db.deleteDiagramTables(diagramId),
|
||||||
@@ -81,14 +91,21 @@ export const ChartDBProvider: React.FC<React.PropsWithChildren> = ({
|
|||||||
|
|
||||||
if (diagrams.length > 0) {
|
if (diagrams.length > 0) {
|
||||||
const defaultDiagramId = diagrams[0].id;
|
const defaultDiagramId = diagrams[0].id;
|
||||||
await db.updateConfig({ defaultDiagramId });
|
await updateConfig({ defaultDiagramId });
|
||||||
navigate(`/diagrams/${defaultDiagramId}`);
|
navigate(`/diagrams/${defaultDiagramId}`);
|
||||||
} else {
|
} else {
|
||||||
await db.updateConfig({ defaultDiagramId: '' });
|
await updateConfig({ defaultDiagramId: '' });
|
||||||
navigate('/');
|
navigate('/');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [db, diagramId, navigate]);
|
}, [
|
||||||
|
db,
|
||||||
|
diagramId,
|
||||||
|
navigate,
|
||||||
|
resetRedoStack,
|
||||||
|
resetUndoStack,
|
||||||
|
updateConfig,
|
||||||
|
]);
|
||||||
|
|
||||||
const updateDiagramUpdatedAt: ChartDBContext['updateDiagramUpdatedAt'] =
|
const updateDiagramUpdatedAt: ChartDBContext['updateDiagramUpdatedAt'] =
|
||||||
useCallback(async () => {
|
useCallback(async () => {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import {
|
|||||||
TableHeader,
|
TableHeader,
|
||||||
TableRow,
|
TableRow,
|
||||||
} from '@/components/table/table';
|
} from '@/components/table/table';
|
||||||
|
import { useConfig } from '@/hooks/use-config';
|
||||||
import { useDialog } from '@/hooks/use-dialog';
|
import { useDialog } from '@/hooks/use-dialog';
|
||||||
import { useStorage } from '@/hooks/use-storage';
|
import { useStorage } from '@/hooks/use-storage';
|
||||||
import { databaseTypeToLabelMap } from '@/lib/databases';
|
import { databaseTypeToLabelMap } from '@/lib/databases';
|
||||||
@@ -34,7 +35,7 @@ export const OpenDiagramDialog: React.FC<OpenDiagramDialogProps> = ({
|
|||||||
dialog,
|
dialog,
|
||||||
}) => {
|
}) => {
|
||||||
const { closeOpenDiagramDialog } = useDialog();
|
const { closeOpenDiagramDialog } = useDialog();
|
||||||
const { updateConfig } = useStorage();
|
const { updateConfig } = useConfig();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { listDiagrams } = useStorage();
|
const { listDiagrams } = useStorage();
|
||||||
const [diagrams, setDiagrams] = useState<Diagram[]>([]);
|
const [diagrams, setDiagrams] = useState<Diagram[]>([]);
|
||||||
|
|||||||
Reference in New Issue
Block a user