diff --git a/Client/src/Pages/PageSpeed/Details/Components/PageSpeedAreaChart/index.jsx b/Client/src/Pages/PageSpeed/Details/Components/PageSpeedAreaChart/index.jsx index 1046a8ca3..c818d04a3 100644 --- a/Client/src/Pages/PageSpeed/Details/Components/PageSpeedAreaChart/index.jsx +++ b/Client/src/Pages/PageSpeed/Details/Components/PageSpeedAreaChart/index.jsx @@ -1,13 +1,20 @@ import ChartBox from "../../../../../Components/Charts/ChartBox"; import AreaChart from "../Charts/AreaChart"; import AreaChartLegend from "../Charts/AreaChartLegend"; +import SkeletonLayout from "./skeleton"; import ScoreIcon from "../../../../../assets/icons/monitor-graph-line.svg?react"; import { Stack } from "@mui/material"; +import PropTypes from "prop-types"; import { useTheme } from "@emotion/react"; const PageSpeedAreaChart = ({ shouldRender, monitor, metrics, handleMetrics }) => { const theme = useTheme(); + + if (!shouldRender) { + return ; + } + if (typeof monitor === "undefined") { return null; } @@ -42,4 +49,11 @@ const PageSpeedAreaChart = ({ shouldRender, monitor, metrics, handleMetrics }) = ); }; +PageSpeedAreaChart.propTypes = { + shouldRender: PropTypes.bool, + monitor: PropTypes.object, + metrics: PropTypes.object, + handleMetrics: PropTypes.func, +}; + export default PageSpeedAreaChart; diff --git a/Client/src/Pages/PageSpeed/Details/Components/PageSpeedAreaChart/skeleton.jsx b/Client/src/Pages/PageSpeed/Details/Components/PageSpeedAreaChart/skeleton.jsx new file mode 100644 index 000000000..b793908d4 --- /dev/null +++ b/Client/src/Pages/PageSpeed/Details/Components/PageSpeedAreaChart/skeleton.jsx @@ -0,0 +1,17 @@ +import { Box, Skeleton } from "@mui/material"; + +const SkeletonLayout = () => { + return ( + + + + ); +}; + +export default SkeletonLayout; diff --git a/Client/src/Pages/PageSpeed/Details/Components/PerformanceReport/index.jsx b/Client/src/Pages/PageSpeed/Details/Components/PerformanceReport/index.jsx index 8f34dbf19..2db40e126 100644 --- a/Client/src/Pages/PageSpeed/Details/Components/PerformanceReport/index.jsx +++ b/Client/src/Pages/PageSpeed/Details/Components/PerformanceReport/index.jsx @@ -4,9 +4,19 @@ import PieChart from "../Charts/PieChart"; import { Typography } from "@mui/material"; import { useTheme } from "@emotion/react"; import PieChartLegend from "../Charts/PieChartLegend"; - -const PerformanceReport = ({ audits }) => { +import SkeletonLayout from "./skeleton"; +const PerformanceReport = ({ shouldRender, audits }) => { + console.log("shouldRender", shouldRender); const theme = useTheme(); + + if (!shouldRender) { + return ; + } + + if (typeof audits === "undefined") { + return null; + } + return ( } diff --git a/Client/src/Pages/PageSpeed/Details/Components/PerformanceReport/skeleton.jsx b/Client/src/Pages/PageSpeed/Details/Components/PerformanceReport/skeleton.jsx new file mode 100644 index 000000000..b793908d4 --- /dev/null +++ b/Client/src/Pages/PageSpeed/Details/Components/PerformanceReport/skeleton.jsx @@ -0,0 +1,17 @@ +import { Box, Skeleton } from "@mui/material"; + +const SkeletonLayout = () => { + return ( + + + + ); +}; + +export default SkeletonLayout; diff --git a/Client/src/Pages/PageSpeed/Details/index.jsx b/Client/src/Pages/PageSpeed/Details/index.jsx index 1a4cbc7e4..43eb0ed7b 100644 --- a/Client/src/Pages/PageSpeed/Details/index.jsx +++ b/Client/src/Pages/PageSpeed/Details/index.jsx @@ -44,14 +44,6 @@ const PageSpeedDetails = () => { setMetrics((prev) => ({ ...prev, [id]: !prev[id] })); }; - if (isLoading) { - return "funk"; - } - - if (typeof audits === "undefined") { - return "No Data"; - } - return ( @@ -76,7 +68,10 @@ const PageSpeedDetails = () => { metrics={metrics} handleMetrics={handleMetrics} /> - + ); };