From 5def78c36d976f50e02939f5dc396f9dcfb6dfd1 Mon Sep 17 00:00:00 2001 From: gabriel Date: Thu, 17 Apr 2025 18:05:46 +0530 Subject: [PATCH] fixed duplication bug --- .../widgets/2d/DraggableWidget.tsx | 25 +++++++++++++----- .../widgets/3d/Dropped3dWidget.tsx | 8 +++++- app/src/store/useDroppedObjectsStore.ts | 26 +++++++++++-------- 3 files changed, 40 insertions(+), 19 deletions(-) diff --git a/app/src/modules/visualization/widgets/2d/DraggableWidget.tsx b/app/src/modules/visualization/widgets/2d/DraggableWidget.tsx index f865719..c1a5a55 100644 --- a/app/src/modules/visualization/widgets/2d/DraggableWidget.tsx +++ b/app/src/modules/visualization/widgets/2d/DraggableWidget.tsx @@ -193,12 +193,18 @@ export const DraggableWidget = ({ }; if (visualizationSocket) { - visualizationSocket.emit("v2:viz-widget:add", duplicateWidget); + console.log('duplicated'); + + visualizationSocket.emit("v2:viz-widget:add", duplicateWidget, (res: any)=> { + if (res.success) { + setSelectedZone((prevZone: any) => ({ + ...prevZone, + widgets: [...prevZone.widgets, duplicatedWidget], + })); + } + }); } - setSelectedZone((prevZone: any) => ({ - ...prevZone, - widgets: [...prevZone.widgets, duplicatedWidget], - })); + // const response = await duplicateWidgetApi(selectedZone.zoneId, organization, duplicatedWidget); @@ -350,13 +356,14 @@ export const DraggableWidget = ({ {/* Render charts based on widget type */} {widget.type === "progress 1" && ( - + )} {widget.type === "progress 2" && ( - + )} {widget.type === "line" && ( { + if (res.success) { + addWidget(selectedZone.zoneId, newWidget); + setRightSelect(null); + setRightClickSelected(null); + } + }); } // let response = await adding3dWidgets(selectedZone.zoneId, organization, newWidget) // diff --git a/app/src/store/useDroppedObjectsStore.ts b/app/src/store/useDroppedObjectsStore.ts index 0c03eec..21ae7a3 100644 --- a/app/src/store/useDroppedObjectsStore.ts +++ b/app/src/store/useDroppedObjectsStore.ts @@ -132,7 +132,6 @@ export const useDroppedObjectsStore = create((set) => ({ : originalObject.position.left, }, }; - console.log("duplicated object",duplicatedObject); let duplicateFloatingWidget = { organization: organization, @@ -144,18 +143,23 @@ export const useDroppedObjectsStore = create((set) => ({ if (visualizationSocket) { visualizationSocket.emit( "v2:viz-float:addDuplicate", - duplicateFloatingWidget + duplicateFloatingWidget, + (res:any)=>{ + if (res.success) { + useDroppedObjectsStore.setState((state) => ({ + zones: { + ...state.zones, + [zoneName]: { + ...state.zones[zoneName], + objects: [...state.zones[zoneName].objects, duplicatedObject], // Append duplicated object + }, + }, + })); + } + } ); } - useDroppedObjectsStore.setState((state) => ({ - zones: { - ...state.zones, - [zoneName]: { - ...state.zones[zoneName], - objects: [...state.zones[zoneName].objects, duplicatedObject], // Append duplicated object - }, - }, - })); + // Make async API call outside of Zustand set function // let response = await addingFloatingWidgets(