Implement local-first canvas sync and fix drag edge stability
This commit is contained in:
@@ -16,6 +16,7 @@ import { getNodeDeleteBlockReason, isOptimisticEdgeId } from "./canvas-helpers";
|
||||
|
||||
type UseCanvasDeleteHandlersParams = {
|
||||
canvasId: Id<"canvases">;
|
||||
isOffline: boolean;
|
||||
nodes: RFNode[];
|
||||
edges: RFEdge[];
|
||||
deletingNodeIds: MutableRefObject<Set<string>>;
|
||||
@@ -33,6 +34,7 @@ type UseCanvasDeleteHandlersParams = {
|
||||
|
||||
export function useCanvasDeleteHandlers({
|
||||
canvasId,
|
||||
isOffline,
|
||||
nodes,
|
||||
edges,
|
||||
deletingNodeIds,
|
||||
@@ -53,6 +55,14 @@ export function useCanvasDeleteHandlers({
|
||||
nodes: RFNode[];
|
||||
edges: RFEdge[];
|
||||
}) => {
|
||||
if (isOffline && (matchingNodes.length > 0 || matchingEdges.length > 0)) {
|
||||
toast.warning(
|
||||
"Offline aktuell nicht unterstützt",
|
||||
"Löschen ist in Stufe 1 nur online verfügbar.",
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (matchingNodes.length === 0) {
|
||||
return true;
|
||||
}
|
||||
@@ -90,7 +100,7 @@ export function useCanvasDeleteHandlers({
|
||||
|
||||
return true;
|
||||
},
|
||||
[],
|
||||
[isOffline],
|
||||
);
|
||||
|
||||
const onNodesDelete = useCallback(
|
||||
|
||||
Reference in New Issue
Block a user