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 { projectName, setProjectName } = useProjectName();
|
||||||
const { projectId } = useParams();
|
const { projectId } = useParams();
|
||||||
const { comparisonProduct } = useComparisonProduct();
|
const { comparisonProduct } = useComparisonProduct();
|
||||||
const { userId, organization, email } = getUserData();
|
const { userId, organization } = getUserData();
|
||||||
|
|
||||||
const validatedProgress = Math.min(100, Math.max(0, progress));
|
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(() => {
|
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 (
|
return (
|
||||||
<RenderOverlay>
|
<RenderOverlay>
|
||||||
<div
|
<div
|
||||||
|
|
|
@ -22,7 +22,7 @@ export default function Controls() {
|
||||||
const { socket } = useSocketStore();
|
const { socket } = useSocketStore();
|
||||||
const state = useThree();
|
const state = useThree();
|
||||||
const { projectId } = useParams();
|
const { projectId } = useParams();
|
||||||
const { userId, organization, email } = getUserData();
|
const { userId, organization } = getUserData();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (controlsRef.current) {
|
if (controlsRef.current) {
|
||||||
|
@ -30,7 +30,6 @@ export default function Controls() {
|
||||||
(controlsRef.current as any).mouseButtons.right = CONSTANTS.thirdPersonControls.rightMouse;
|
(controlsRef.current as any).mouseButtons.right = CONSTANTS.thirdPersonControls.rightMouse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
getCamera(organization, userId, projectId).then((data) => {
|
getCamera(organization, userId, projectId).then((data) => {
|
||||||
// console.log('data: ', data);
|
// console.log('data: ', data);
|
||||||
if (data && data.position && data.target) {
|
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("cameraPosition", JSON.stringify(new THREE.Vector3(...CONSTANTS.threeDimension.defaultPosition)));
|
||||||
localStorage.setItem("controlTarget", JSON.stringify(new THREE.Vector3(...CONSTANTS.threeDimension.defaultTarget)));
|
localStorage.setItem("controlTarget", JSON.stringify(new THREE.Vector3(...CONSTANTS.threeDimension.defaultTarget)));
|
||||||
|
|
||||||
|
|
||||||
const camData = {
|
const camData = {
|
||||||
organization,
|
organization,
|
||||||
userId: userId,
|
userId: userId,
|
||||||
|
|
|
@ -30,31 +30,26 @@ export default function Scene({ layout }: { readonly layout: 'Main Layout' | 'Co
|
||||||
const { activeModule } = useModuleStore();
|
const { activeModule } = useModuleStore();
|
||||||
const { loadingProgress } = useLoadingProgress();
|
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(() => {
|
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])
|
}, [activeModule, assets, loadingProgress])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
Loading…
Reference in New Issue