Update app/src/components/templates/LoadingPage.tsx
This commit is contained in:
@@ -1,68 +1,68 @@
|
|||||||
import React, { useEffect } from "react";
|
import React, { useEffect } from "react";
|
||||||
import RenderOverlay from "./Overlay";
|
import RenderOverlay from "./Overlay";
|
||||||
import { LogoIconLarge } from "../icons/Logo";
|
import { LogoIconLarge } from "../icons/Logo";
|
||||||
import { useParams } from "react-router-dom";
|
import { useParams } from "react-router-dom";
|
||||||
import { useProjectName } from "../../store/builder/store";
|
import { useProjectName } from "../../store/builder/store";
|
||||||
import { getAllProjects } from "../../services/dashboard/getAllProjects";
|
import { getAllProjects } from "../../services/dashboard/getAllProjects";
|
||||||
import { useComparisonProduct } from "../../store/simulation/useSimulationStore";
|
import { useComparisonProduct } from "../../store/simulation/useSimulationStore";
|
||||||
import { getUserData } from "../../functions/getUserData";
|
import { getUserData } from "../../functions/getUserData";
|
||||||
|
|
||||||
interface LoadingPageProps {
|
interface LoadingPageProps {
|
||||||
progress: number; // Expect progress as a percentage (0-100)
|
progress: number; // Expect progress as a percentage (0-100)
|
||||||
}
|
}
|
||||||
|
|
||||||
const LoadingPage: React.FC<LoadingPageProps> = ({ progress }) => {
|
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, email } = getUserData();
|
||||||
|
|
||||||
const validatedProgress = Math.min(100, Math.max(0, progress));
|
const validatedProgress = Math.min(100, Math.max(0, progress));
|
||||||
const generateThumbnail = async () => {
|
const generateThumbnail = async () => {
|
||||||
try {
|
try {
|
||||||
if (!email || !userId) {
|
if (!email || !userId) {
|
||||||
console.error("User data not found in localStorage");
|
console.error("User data not found in localStorage");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const projects = await getAllProjects(userId, organization);
|
const projects = await getAllProjects(userId, organization);
|
||||||
const filterProject = projects?.Projects.find(
|
const filterProject = projects?.Projects.find(
|
||||||
(val: any) => val.projectUuid === projectId || val._id === projectId
|
(val: any) => val.projectUuid === projectId || val._id === projectId
|
||||||
);
|
);
|
||||||
|
|
||||||
setProjectName(filterProject.projectName);
|
setProjectName(filterProject.projectName);
|
||||||
} catch { }
|
} catch { }
|
||||||
};
|
};
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
generateThumbnail();
|
generateThumbnail();
|
||||||
}, []);
|
}, []);
|
||||||
return (
|
return (
|
||||||
<RenderOverlay>
|
<RenderOverlay>
|
||||||
<div
|
<div
|
||||||
className={`loading-wrapper ${comparisonProduct != null ? "comparisionLoading" : ""
|
className={`loading-wrapper ${comparisonProduct != null ? "comparisionLoading" : ""
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
<div className="loading-container">
|
<div className="loading-container">
|
||||||
<div className="project-name">{projectName}</div>
|
<div className="project-name">{projectName}</div>
|
||||||
<div className="loading-hero-container">
|
<div className="loading-hero-container">
|
||||||
<div className="logo">
|
<div className="logo">
|
||||||
<LogoIconLarge />
|
<LogoIconLarge />
|
||||||
</div>
|
</div>
|
||||||
<div className="content">Entering A New World of Dwinzo</div>
|
<div className="content">Entering A New World with your Aalai</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="progress-container">
|
<div className="progress-container">
|
||||||
<div className="progress-value">{validatedProgress}%</div>
|
<div className="progress-value">{validatedProgress}%</div>
|
||||||
<div className="progress-indicator-container">
|
<div className="progress-indicator-container">
|
||||||
<div
|
<div
|
||||||
className="progress-bar"
|
className="progress-bar"
|
||||||
style={{ width: `${validatedProgress}%` }} // Dynamic width
|
style={{ width: `${validatedProgress}%` }} // Dynamic width
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</RenderOverlay>
|
</RenderOverlay>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default LoadingPage;
|
export default LoadingPage;
|
||||||
|
|||||||
Reference in New Issue
Block a user