From 999c6e65598c232297bad4091e262e266c5835f6 Mon Sep 17 00:00:00 2001 From: Poovizhi99 Date: Thu, 12 Jun 2025 17:10:29 +0530 Subject: [PATCH] fix: clean up imports and remove console log in DashboardHome; add project update logic in Scene --- app/src/app.tsx | 3 +- .../components/Dashboard/DashboardHome.tsx | 1 - app/src/modules/scene/scene.tsx | 70 +++++++++++++++++-- 3 files changed, 68 insertions(+), 6 deletions(-) diff --git a/app/src/app.tsx b/app/src/app.tsx index b03d4df..6aa1547 100644 --- a/app/src/app.tsx +++ b/app/src/app.tsx @@ -1,6 +1,6 @@ import React, { useEffect } from "react"; import { Cache } from "three"; -import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; +import { BrowserRouter as Router, Routes, Route, useParams } from "react-router-dom"; import Dashboard from "./pages/Dashboard"; import Project from "./pages/Project"; import UserAuth from "./pages/UserAuth"; @@ -14,6 +14,7 @@ const App: React.FC = () => { Cache.enabled = true; }, []); + return ( diff --git a/app/src/components/Dashboard/DashboardHome.tsx b/app/src/components/Dashboard/DashboardHome.tsx index e82c474..2dc271b 100644 --- a/app/src/components/Dashboard/DashboardHome.tsx +++ b/app/src/components/Dashboard/DashboardHome.tsx @@ -116,7 +116,6 @@ const DashboardHome: React.FC = () => { const renderProjects = () => { const projectList = recentProjects[Object.keys(recentProjects)[0]]; - console.log('projectList: ', projectList); if (!projectList?.length) { return
No recent projects found
; } diff --git a/app/src/modules/scene/scene.tsx b/app/src/modules/scene/scene.tsx index 7777a30..ee47596 100644 --- a/app/src/modules/scene/scene.tsx +++ b/app/src/modules/scene/scene.tsx @@ -1,6 +1,5 @@ -import { useMemo } from "react"; +import { useEffect, useMemo } from "react"; import { Canvas } from "@react-three/fiber"; -import { Color } from "three"; import { KeyboardControls } from "@react-three/drei"; import { SceneProvider } from "./sceneContext"; @@ -9,6 +8,12 @@ import Visualization from "../visualization/visualization"; import Setup from "./setup/setup"; import Simulation from "../simulation/simulation"; import Collaboration from "../collaboration/collaboration"; +import useModuleStore from "../../store/useModuleStore"; +import { useParams } from "react-router-dom"; +import { getAllProjects } from "../../services/dashboard/getAllProjects"; +import { getUserData } from "../../components/Dashboard/functions/getUserData"; +import { useLoadingProgress, useSocketStore } from "../../store/builder/store"; +import { useAssetsStore } from "../../store/builder/useAssetStore"; export default function Scene({ layout }: { readonly layout: 'Main Layout' | 'Comparison Layout' }) { const map = useMemo(() => [ @@ -17,19 +22,76 @@ export default function Scene({ layout }: { readonly layout: 'Main Layout' | 'Co { name: "left", keys: ["ArrowLeft", "a", "A"] }, { name: "right", keys: ["ArrowRight", "d", "D"] }, ], []); + const { assets } = useAssetsStore(); + const { userId, organization } = getUserData(); + const { activeModule } = useModuleStore(); + const { projectId } = useParams(); + const { projectSocket } = useSocketStore(); + const { loadingProgress } = useLoadingProgress(); + const handleUpdatingProject = async () => { + if (!projectId) return; + try { + const projects = await getAllProjects(userId, organization); + let projectUuid = projects.Projects.find( + (val: any) => val.projectUuid === projectId || val._id === projectId + ); + + + if (activeModule === "builder" && loadingProgress !== 1) { + const canvas = + document.getElementById("sceneCanvas")?.children[0]?.children[0]; + const screenshotDataUrl = (canvas as HTMLCanvasElement)?.toDataURL("image/png"); + setTimeout(() => { + const updateProjects = { + projectId: projectUuid, + organization, + userId, + projectName: projectUuid.projectName, + thumbnail: screenshotDataUrl, + }; + if (projectSocket) { + projectSocket.emit("v1:project:update", updateProjects); + } + }, 8000); + } else { + const canvas = + document.getElementById("sceneCanvas")?.children[0]?.children[0]; + const screenshotDataUrl = (canvas as HTMLCanvasElement)?.toDataURL("image/png"); + const updateProjects = { + projectId: projectUuid, + organization, + userId, + projectName: projectUuid.projectName, + thumbnail: screenshotDataUrl, + }; + // console.log('screenshotDataUrl: ', screenshotDataUrl); + // console.log('updateProjects: ', updateProjects); + if (projectSocket) { + projectSocket.emit("v1:project:update", updateProjects); + } + } + + } catch (error) { } + }; + useEffect(() => { + handleUpdatingProject() + }, [activeModule, assets, loadingProgress]) return ( { e.preventDefault(); }} onCreated={(e) => { - e.scene.background = new Color(0x19191d); + e.scene.background = null; }} + gl={{ powerPreference: "high-performance", antialias: true, preserveDrawingBuffer: true }} >