refactor: improve zone and asset handler structure and update context usage
This commit is contained in:
@@ -1,25 +1,23 @@
|
||||
import { useCallback } from "react";
|
||||
import { useParams } from "react-router-dom";
|
||||
import { getUserData } from "../getUserData";
|
||||
import { useVersionContext } from "../../modules/builder/version/versionContext";
|
||||
import { getZoneData } from "../../services/visulization/zone/getZones";
|
||||
import { zoneCameraUpdate } from "../../services/visulization/zone/zoneCameraUpdation";
|
||||
import { setAssetsApi } from "../../services/factoryBuilder/asset/floorAsset/setAssetsApi";
|
||||
import { useSelectedZoneStore } from "../../store/visualization/useZoneStore";
|
||||
import { useSubModuleStore } from "../../store/useModuleStore";
|
||||
import { useSubModuleStore } from "../../store/ui/useModuleStore";
|
||||
import { useSceneContext } from "../../modules/scene/sceneContext";
|
||||
import { useZoneAssetId } from "../../store/builder/store";
|
||||
|
||||
export const useZoneAssetHandlers = () => {
|
||||
const { projectId } = useParams();
|
||||
const { organization } = getUserData();
|
||||
const { selectedVersionStore } = useVersionContext();
|
||||
const { selectedVersion } = selectedVersionStore();
|
||||
|
||||
const { selectedZone, setSelectedZone } = useSelectedZoneStore();
|
||||
const { setSubModule } = useSubModuleStore();
|
||||
const { zoneAssetId, setZoneAssetId } = useZoneAssetId();
|
||||
const { assetStore, zoneStore } = useSceneContext();
|
||||
const { assetStore, zoneStore, versionStore } = useSceneContext();
|
||||
const { selectedVersion } = versionStore();
|
||||
const { setName } = assetStore();
|
||||
const { zones, setZoneName } = zoneStore();
|
||||
|
||||
@@ -29,12 +27,7 @@ export const useZoneAssetHandlers = () => {
|
||||
if (selectedZone?.zoneUuid === id || id === "unassigned-zone") return;
|
||||
setSubModule("zoneProperties");
|
||||
|
||||
const response = await getZoneData(
|
||||
id,
|
||||
organization,
|
||||
projectId,
|
||||
selectedVersion?.versionId || ""
|
||||
);
|
||||
const response = await getZoneData(id, organization, projectId, selectedVersion?.versionId || "");
|
||||
if (!response) return;
|
||||
|
||||
setSelectedZone({
|
||||
@@ -54,22 +47,13 @@ export const useZoneAssetHandlers = () => {
|
||||
// 🔹 Zone rename
|
||||
const handleZoneNameChange = useCallback(
|
||||
async (newName: string) => {
|
||||
const isDuplicate = zones.some(
|
||||
(zone: any) =>
|
||||
zone.zoneName?.trim().toLowerCase() === newName.trim().toLowerCase() &&
|
||||
zone.zoneUuid !== selectedZone.zoneUuid
|
||||
);
|
||||
const isDuplicate = zones.some((zone: any) => zone.zoneName?.trim().toLowerCase() === newName.trim().toLowerCase() && zone.zoneUuid !== selectedZone.zoneUuid);
|
||||
if (isDuplicate) {
|
||||
alert("Zone name already exists. Please choose a different name.");
|
||||
return;
|
||||
}
|
||||
|
||||
const response = await zoneCameraUpdate(
|
||||
{ zoneUuid: selectedZone.zoneUuid, zoneName: newName },
|
||||
organization,
|
||||
projectId,
|
||||
selectedVersion?.versionId || ""
|
||||
);
|
||||
const response = await zoneCameraUpdate({ zoneUuid: selectedZone.zoneUuid, zoneName: newName }, organization, projectId, selectedVersion?.versionId || "");
|
||||
|
||||
if (response.message === "zone updated") {
|
||||
setSelectedZone((prev) => ({ ...prev, zoneName: newName }));
|
||||
|
||||
Reference in New Issue
Block a user