server api changed for RealTimeVisulization

This commit is contained in:
2025-04-01 15:16:54 +05:30
parent e35d3b3742
commit 900723c14a
29 changed files with 201 additions and 225 deletions

View File

@@ -105,68 +105,69 @@ const AddButtons: React.FC<ButtonsProps> = ({
// Function to handle "+" button click
const handlePlusButtonClick = async (side: Side) => {
if (selectedZone.activeSides.includes(side)) {
// Panel already exists: Remove widgets from that side and update activeSides
const email = localStorage.getItem("email") || "";
const organization = email?.split("@")[1]?.split(".")[0]; // Fallback value
// If the panel is already active, remove all widgets and close the panel
// Remove all widgets associated with the side and update active sides
const cleanedWidgets = selectedZone.widgets.filter(
(widget) => widget.panel !== side
);
const newActiveSides = selectedZone.activeSides.filter((s) => s !== side);
const updatedZone = {
...selectedZone,
widgets: cleanedWidgets,
activeSides: newActiveSides,
panelOrder: newActiveSides,
};
let response = await deletePanelApi(selectedZone.zoneId, side, organization)
if (response.message === 'Panel deleted successfully') {
setSelectedZone(updatedZone);
}
// Delete the selectedZone state
} else {
const updatePanelData = async () => {
try {
// Get email and organization safely
const email = localStorage.getItem("email") || "";
const organization = email?.split("@")[1]?.split(".")[0] || "defaultOrg"; // Fallback value
// Prevent duplicate side entries
const newActiveSides = selectedZone.activeSides.includes(side)
? [...selectedZone.activeSides]
: [...selectedZone.activeSides, side];
const updatedZone = {
...selectedZone,
activeSides: newActiveSides,
panelOrder: newActiveSides,
};
// API call
const response = await panelData(organization, selectedZone.zoneId, newActiveSides);
if (response.message === 'Panels created successfully') {
setSelectedZone(updatedZone);
}
// Update state
} catch (error) {
// API call to delete the panel
try {
const response = await deletePanelApi(selectedZone.zoneId, side, organization);
console.log('response: ', response);
if (response.message === "Panel deleted successfully") {
setSelectedZone(updatedZone);
} else {
console.error("Unexpected response:", response);
}
};
updatePanelData(); // Call the async function
} catch (error) {
console.error("Error deleting panel:", error);
}
} else {
// Panel does not exist: Create panel
try {
// Get email and organization safely with a default fallback
const email = localStorage.getItem("email") || "";
const organization = email?.split("@")[1]?.split(".")[0] ;
// Prevent duplicate side entries
const newActiveSides = selectedZone.activeSides.includes(side)
? [...selectedZone.activeSides]
: [...selectedZone.activeSides, side];
const updatedZone = {
...selectedZone,
activeSides: newActiveSides,
panelOrder: newActiveSides,
};
// API call to create panels
const response = await panelData(organization, selectedZone.zoneId, newActiveSides);
console.log('response: ', response);
if (response.message === "Panels created successfully") {
setSelectedZone(updatedZone);
} else {
console.error("Unexpected response:", response);
}
} catch (error) {
console.error("Error creating panels:", error);
}
}
};
return (
<>