use case bug fixed
This commit is contained in:
@@ -23,13 +23,14 @@ import { getUserData } from "../../../functions/getUserData";
|
|||||||
import { getCameraApi } from "../../../services/factoryBuilder/camera/getCameraApi";
|
import { getCameraApi } from "../../../services/factoryBuilder/camera/getCameraApi";
|
||||||
import { setCameraApi } from "../../../services/factoryBuilder/camera/setCameraApi";
|
import { setCameraApi } from "../../../services/factoryBuilder/camera/setCameraApi";
|
||||||
import updateCamPosition from "../camera/functions/updateCameraPosition";
|
import updateCamPosition from "../camera/functions/updateCameraPosition";
|
||||||
|
import { ALPHA_ORG } from "../../../pages/Dashboard";
|
||||||
|
|
||||||
export default function Controls() {
|
export default function Controls() {
|
||||||
const controlsRef = useRef<CameraControls>(null);
|
const controlsRef = useRef<CameraControls>(null);
|
||||||
const state = useThree();
|
const state = useThree();
|
||||||
const { toggleView } = useToggleView();
|
const { toggleView } = useToggleView();
|
||||||
const { resetCamera, setResetCamera } = useResetCamera();
|
const { resetCamera, setResetCamera } = useResetCamera();
|
||||||
const { camType } = useSceneStore();
|
const { camType, layoutType } = useSceneStore();
|
||||||
const { builderSocket } = useSocketStore();
|
const { builderSocket } = useSocketStore();
|
||||||
const { projectId } = useParams();
|
const { projectId } = useParams();
|
||||||
const { userId, organization } = getUserData();
|
const { userId, organization } = getUserData();
|
||||||
@@ -55,7 +56,7 @@ export default function Controls() {
|
|||||||
}, [projectId]);
|
}, [projectId]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (resetCamera && projectId) {
|
if (resetCamera && projectId && (layoutType === "default" || (layoutType === "useCase" && organization === ALPHA_ORG))) {
|
||||||
controlsRef.current?.setPosition(...CONSTANTS.threeDimension.defaultPosition);
|
controlsRef.current?.setPosition(...CONSTANTS.threeDimension.defaultPosition);
|
||||||
controlsRef.current?.setTarget(...CONSTANTS.threeDimension.defaultTarget);
|
controlsRef.current?.setTarget(...CONSTANTS.threeDimension.defaultTarget);
|
||||||
controlsRef.current?.rotateAzimuthTo(CONSTANTS.threeDimension.defaultAzimuth);
|
controlsRef.current?.rotateAzimuthTo(CONSTANTS.threeDimension.defaultAzimuth);
|
||||||
@@ -82,7 +83,7 @@ export default function Controls() {
|
|||||||
|
|
||||||
setResetCamera(false);
|
setResetCamera(false);
|
||||||
}
|
}
|
||||||
}, [resetCamera, builderSocket, projectId]);
|
}, [resetCamera, builderSocket, projectId, layoutType]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
controlsRef.current?.setBoundary(new THREE.Box3(new THREE.Vector3(...CONSTANTS.threeDimension.boundaryBottom), new THREE.Vector3(...CONSTANTS.threeDimension.boundaryTop)));
|
controlsRef.current?.setBoundary(new THREE.Box3(new THREE.Vector3(...CONSTANTS.threeDimension.boundaryBottom), new THREE.Vector3(...CONSTANTS.threeDimension.boundaryTop)));
|
||||||
@@ -118,7 +119,7 @@ export default function Controls() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const controls = controlsRef.current;
|
const controls = controlsRef.current;
|
||||||
if (controls && !toggleView && camType === "perspective") {
|
if (controls && !toggleView && camType === "perspective" && (layoutType === "default" || (layoutType === "useCase" && organization === ALPHA_ORG))) {
|
||||||
controls.addEventListener("sleep", handleRest);
|
controls.addEventListener("sleep", handleRest);
|
||||||
controls.addEventListener("control", startInterval);
|
controls.addEventListener("control", startInterval);
|
||||||
controls.addEventListener("controlend", stopInterval);
|
controls.addEventListener("controlend", stopInterval);
|
||||||
@@ -132,7 +133,7 @@ export default function Controls() {
|
|||||||
}
|
}
|
||||||
stopInterval();
|
stopInterval();
|
||||||
};
|
};
|
||||||
}, [toggleView, state, builderSocket, camType]);
|
}, [toggleView, state, builderSocket, camType, layoutType]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ type SceneContextValue = {
|
|||||||
|
|
||||||
layout: "Main Layout" | "Comparison Layout";
|
layout: "Main Layout" | "Comparison Layout";
|
||||||
|
|
||||||
layoutType: "project" | "usecase" | "tutorial" | null;
|
layoutType: "default" | "useCase" | "tutorial" | null;
|
||||||
};
|
};
|
||||||
|
|
||||||
const SceneContext = createContext<SceneContextValue | null>(null);
|
const SceneContext = createContext<SceneContextValue | null>(null);
|
||||||
@@ -76,7 +76,7 @@ export function SceneProvider({
|
|||||||
}: {
|
}: {
|
||||||
readonly children: React.ReactNode;
|
readonly children: React.ReactNode;
|
||||||
readonly layout: "Main Layout" | "Comparison Layout";
|
readonly layout: "Main Layout" | "Comparison Layout";
|
||||||
readonly layoutType: "project" | "usecase" | "tutorial" | null;
|
readonly layoutType: "default" | "useCase" | "tutorial" | null;
|
||||||
}) {
|
}) {
|
||||||
const versionStore = useMemo(() => createVersionStore(), []);
|
const versionStore = useMemo(() => createVersionStore(), []);
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ type SceneStore = {
|
|||||||
|
|
||||||
setCamType: (type: "orthographic" | "perspective") => void;
|
setCamType: (type: "orthographic" | "perspective") => void;
|
||||||
|
|
||||||
layoutType: "project" | "usecase" | "tutorial" | null;
|
layoutType: "default" | "useCase" | "tutorial" | null;
|
||||||
|
|
||||||
setLayoutType: (layoutType: "project" | "usecase" | "tutorial" | null) => void;
|
setLayoutType: (layoutType: "default" | "useCase" | "tutorial" | null) => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useSceneStore = create<SceneStore>()(
|
export const useSceneStore = create<SceneStore>()(
|
||||||
|
|||||||
Reference in New Issue
Block a user