diff --git a/app/src/components/layout/scenes/MainScene.tsx b/app/src/components/layout/scenes/MainScene.tsx index ea2e800..927f34e 100644 --- a/app/src/components/layout/scenes/MainScene.tsx +++ b/app/src/components/layout/scenes/MainScene.tsx @@ -1,6 +1,13 @@ import { useEffect } from "react"; import { useParams } from "react-router-dom"; -import { useLoadingProgress, useRenameModeStore, useIsComparing, useSelectedComment, useWidgetSubOption, useToggleView, useCreateNewWindow } from "../../../store/builder/store"; +import { + useLoadingProgress, + useRenameModeStore, + useIsComparing, + useWidgetSubOption, + useToggleView, + useCreateNewWindow, +} from "../../../store/builder/store"; import useModuleStore from "../../../store/ui/useModuleStore"; import { useSocketStore } from "../../../store/socket/useSocketStore"; import { usePlayButtonStore } from "../../../store/ui/usePlayButtonStore"; @@ -44,16 +51,17 @@ function MainScene() { const { toggleView } = useToggleView(); const { isPlaying } = usePlayButtonStore(); const { widgetSubOption } = useWidgetSubOption(); - const { builderSocket, visualizationSocket } = useSocketStore(); + const { builderSocket, visualizationSocket, threadSocket } = useSocketStore(); const { selectedZone } = useSelectedZoneStore(); const { setFloatingWidget } = useFloatingWidget(); - const { assetStore, productStore, versionStore } = useSceneContext(); + const { assetStore, productStore, versionStore, threadStore } = useSceneContext(); const { products, selectedProduct } = productStore(); const { versionHistory, setVersions, selectedVersion, setSelectedVersion } = versionStore(); const { setName, selectedAssets, setSelectedAssets } = assetStore(); const { projectId } = useParams(); const { isRenameMode, setIsRenameMode } = useRenameModeStore(); - const { selectedComment, commentPositionState } = useSelectedComment(); + const { commentPositionState, selectedThread } = threadStore(); + const { resetStates } = useRestStates(); const { organization, userId } = getUserData(); const { createNewWindow } = useCreateNewWindow(); @@ -71,7 +79,12 @@ function MainScene() { builderSocket.emit("joinRoom", { projectId: projectId }); }, 1000); } - }, [builderSocket, projectId]); + if (threadSocket && projectId) { + setTimeout(() => { + threadSocket.emit("joinRoom", { projectId: projectId }); + }, 1000); + } + }, [builderSocket, threadSocket, projectId]); useEffect(() => { if (activeModule !== "simulation") { @@ -108,9 +121,13 @@ function MainScene() { useEffect(() => { if (versionHistory.length > 0) { recentlyViewedApi().then((projects) => { - const recent_opened_verisionID = (Object.values(projects?.RecentlyViewed || {})[0] as any)?.Present_version._id; + const recent_opened_verisionID = ( + Object.values(projects?.RecentlyViewed || {})[0] as any + )?.Present_version._id; if (recent_opened_verisionID && projects.RecentlyViewed[0]._id === projectId) { - const version = versionHistory.find((ver) => ver.versionId === recent_opened_verisionID); + const version = versionHistory.find( + (ver) => ver.versionId === recent_opened_verisionID + ); if (version) { setSelectedVersion(version); } @@ -188,7 +205,9 @@ function MainScene() { {!selectedUser && ( <> - {!createNewWindow && loadingProgress > 0 && } + {!createNewWindow && loadingProgress > 0 && ( + + )} {!isPlaying && ( <> {!toggleView && !isComparing && } @@ -203,27 +222,48 @@ function MainScene() { {/* */} {activeModule === "market" && } {activeModule !== "market" && !isPlaying && !isComparing && } - {isPlaying && activeModule === "simulation" && loadingProgress === 0 && } + {isPlaying && activeModule === "simulation" && loadingProgress === 0 && ( + + )} {isPlaying && activeModule !== "simulation" && } {activeModule === "visualization" && } - {isRenameMode && selectedAssets.length === 1 && } + {isRenameMode && selectedAssets.length === 1 && ( + + )} {activeModule === "builder" && toggleView && } - {selectedProduct && selectedVersion && isComparing && !isPlaying && activeModule === "simulation" && ( -
- v.versionName)} onSelect={handleSelectVersion} search={false} /> -
- l.productName)} onSelect={handleSelectProduct} search={false} /> -
- )} + {selectedProduct && + selectedVersion && + isComparing && + !isPlaying && + activeModule === "simulation" && ( +
+ v.versionName)} + onSelect={handleSelectVersion} + search={false} + /> +
+ l.productName)} + onSelect={handleSelectProduct} + search={false} + /> +
+ )} )} - {(commentPositionState !== null || selectedComment !== null) && } + {(commentPositionState !== null || selectedThread !== null) && } {activeModule !== "market" && !selectedUser &&