refactor: simplify project data handling in LoadingPage, Controls, and Scene components
This commit is contained in:
parent
8c6c068b17
commit
a6d13940cc
|
@ -15,27 +15,23 @@ const LoadingPage: React.FC<LoadingPageProps> = ({ 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 (
|
||||
<RenderOverlay>
|
||||
<div
|
||||
|
|
|
@ -22,7 +22,7 @@ export default function Controls() {
|
|||
const { socket } = useSocketStore();
|
||||
const state = useThree();
|
||||
const { projectId } = useParams();
|
||||
const { userId, organization, email } = getUserData();
|
||||
const { userId, organization } = getUserData();
|
||||
|
||||
useEffect(() => {
|
||||
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,
|
||||
|
|
|
@ -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 (
|
||||
|
|
Loading…
Reference in New Issue