import { useEffect } from "react"; import { useDroppedObjectsStore } from "../../../../store/useDroppedObjectsStore"; import useTemplateStore from "../../../../store/useTemplateStore"; import { useSelectedZoneStore } from "../../../../store/useZoneStore"; import { getTemplateData } from "../../../../services/realTimeVisulization/zoneData/getTemplate"; import { deleteTemplateApi } from "../../../../services/realTimeVisulization/zoneData/deleteTemplate"; import { loadTempleteApi } from "../../../../services/realTimeVisulization/zoneData/loadTemplate"; import { useSocketStore } from "../../../../store/store"; const Templates = () => { const { templates, removeTemplate } = useTemplateStore(); const { setTemplates } = useTemplateStore(); const { setSelectedZone, selectedZone } = useSelectedZoneStore(); const { visualizationSocket } = useSocketStore(); useEffect(() => { async function templateData() { try { const email = localStorage.getItem("email") || ""; const organization = email?.split("@")[1]?.split(".")[0]; let response = await getTemplateData(organization); setTemplates(response); } catch (error) { console.error("Error fetching template data:", error); } } templateData(); }, []); const handleDeleteTemplate = async (id: string) => { try { const email = localStorage.getItem("email") || ""; const organization = email?.split("@")[1]?.split(".")[0]; let deleteTemplate = { organization: organization, templateID: id, } if (visualizationSocket) { visualizationSocket.emit("v2:viz-template:deleteTemplate", deleteTemplate) } removeTemplate(id); // let response = await deleteTemplateApi(id, organization); // if (response.message === "Template deleted successfully") { // } } catch (error) { console.error("Error deleting template:", error); } }; const handleLoadTemplate = async (template: any) => { try { if (selectedZone.zoneName === "") return; const email = localStorage.getItem("email") || ""; const organization = email?.split("@")[1]?.split(".")[0]; let loadingTemplate = { organization: organization, zoneId: selectedZone.zoneId, templateID: template.id, } console.log('template: ', template); console.log('loadingTemplate: ', loadingTemplate); if (visualizationSocket) { visualizationSocket.emit("v2:viz-template:addToZone", loadingTemplate) } // let response = await loadTempleteApi(template.id, selectedZone.zoneId, organization); // if (response.message === "Template placed in Zone") { setSelectedZone({ panelOrder: template.panelOrder, activeSides: Array.from(new Set(template.panelOrder)), // No merging with previous `activeSides` widgets: template.widgets, }); useDroppedObjectsStore.getState().setZone(selectedZone.zoneName, selectedZone.zoneId); if (Array.isArray(template.floatingWidget)) { template.floatingWidget.forEach((val: any) => { useDroppedObjectsStore.getState().addObject(selectedZone.zoneName, val); }); } // } } catch (error) { console.error("Error loading template:", error); } }; return (