From a6d13940ccbb04bee27664ff90721275996544aa Mon Sep 17 00:00:00 2001 From: Jerald-Golden-B Date: Thu, 19 Jun 2025 15:23:22 +0530 Subject: [PATCH] refactor: simplify project data handling in LoadingPage, Controls, and Scene components --- app/src/components/templates/LoadingPage.tsx | 28 ++++++------- app/src/modules/scene/controls/controls.tsx | 4 +- app/src/modules/scene/scene.tsx | 43 +++++++++----------- 3 files changed, 32 insertions(+), 43 deletions(-) diff --git a/app/src/components/templates/LoadingPage.tsx b/app/src/components/templates/LoadingPage.tsx index 6855808..1cc62e4 100644 --- a/app/src/components/templates/LoadingPage.tsx +++ b/app/src/components/templates/LoadingPage.tsx @@ -15,27 +15,23 @@ const LoadingPage: React.FC = ({ progress }) => { const { projectName, setProjectName } = useProjectName(); const { projectId } = useParams(); const { comparisonProduct } = useComparisonProduct(); - const { userId, organization, email } = getUserData(); + const { userId, organization } = getUserData(); const validatedProgress = Math.min(100, Math.max(0, progress)); - const generateThumbnail = async () => { - try { - if (!email || !userId) { - console.error("User data not found in localStorage"); - return; - } - const projects = await getAllProjects(userId, organization); - const filterProject = projects?.Projects.find( - (val: any) => val.projectUuid === projectId || val._id === projectId - ); - - setProjectName(filterProject.projectName); - } catch { } - }; useEffect(() => { - generateThumbnail(); + if (!userId) return; + + getAllProjects(userId, organization).then((projects) => { + const filterProject = projects?.Projects.find((val: any) => val.projectUuid === projectId || val._id === projectId); + if (filterProject) { + setProjectName(filterProject.projectName); + } + }).catch((error) => { + console.log(error); + }) }, []); + return (
{ if (controlsRef.current) { @@ -30,7 +30,6 @@ export default function Controls() { (controlsRef.current as any).mouseButtons.right = CONSTANTS.thirdPersonControls.rightMouse; } - getCamera(organization, userId, projectId).then((data) => { // console.log('data: ', data); if (data && data.position && data.target) { @@ -53,7 +52,6 @@ export default function Controls() { localStorage.setItem("cameraPosition", JSON.stringify(new THREE.Vector3(...CONSTANTS.threeDimension.defaultPosition))); localStorage.setItem("controlTarget", JSON.stringify(new THREE.Vector3(...CONSTANTS.threeDimension.defaultTarget))); - const camData = { organization, userId: userId, diff --git a/app/src/modules/scene/scene.tsx b/app/src/modules/scene/scene.tsx index 4c9d757..a7dfa1c 100644 --- a/app/src/modules/scene/scene.tsx +++ b/app/src/modules/scene/scene.tsx @@ -30,31 +30,26 @@ export default function Scene({ layout }: { readonly layout: 'Main Layout' | 'Co const { activeModule } = useModuleStore(); const { loadingProgress } = useLoadingProgress(); - const handleUpdatingProject = async () => { - if (!projectId && loadingProgress > 1) return; - try { - const projects = await getAllProjects(userId, organization); - let projectUuid = projects.Projects.find( - (val: any) => val.projectUuid === projectId || val._id === projectId - ); - 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, - }; - if (projectSocket) { - projectSocket.emit("v1:project:update", updateProjects); - } - } catch (error) { } - }; - useEffect(() => { - handleUpdatingProject() + if (!projectId && loadingProgress > 1) return; + getAllProjects(userId, organization) + .then((projects) => { + let project = projects.Projects.find((val: any) => val.projectUuid === projectId || val._id === projectId); + const canvas = document.getElementById("sceneCanvas")?.children[0]?.children[0]; + const screenshotDataUrl = (canvas as HTMLCanvasElement)?.toDataURL("image/png"); + const updateProjects = { + projectId: project.projectUuid, + organization, + userId, + projectName: project.projectName, + thumbnail: screenshotDataUrl, + }; + if (projectSocket) { + projectSocket.emit("v1:project:update", updateProjects); + } + }).catch((err) => { + console.error(err); + }); }, [activeModule, assets, loadingProgress]) return (