diff --git a/Client/src/Components/Charts/PagespeedLineChart/index.jsx b/Client/src/Components/Charts/PagespeedLineChart/index.jsx
index de01e35ad..270cbaca0 100644
--- a/Client/src/Components/Charts/PagespeedLineChart/index.jsx
+++ b/Client/src/Components/Charts/PagespeedLineChart/index.jsx
@@ -44,12 +44,28 @@ const PageSpeedLineChart = ({ pageSpeedChecks = [] }) => {
dataset={pageSpeedChecks}
{...customize}
grid={{ vertical: true, horizontal: true }}
+ tooltip={{ trigger: "none" }}
+ slotProps={{
+ legend: {
+ direction: "row",
+ position: { vertical: "bottom", horizontal: "middle" },
+ padding: 2,
+ itemMarkWidth: 8,
+ itemMarkHeight: 8,
+ markGap: 5,
+ itemGap: 15,
+ labelStyle: {
+ fontSize: 13,
+ color: "#344054"
+ }
+ },
+ }}
/>
);
};
PageSpeedLineChart.propTypes = {
- pageSpeedChecks: PropTypes.array.isRequired,
+ pageSpeedChecks: PropTypes.array,
};
export default PageSpeedLineChart;
diff --git a/Client/src/Pages/PageSpeed/Details/index.css b/Client/src/Pages/PageSpeed/Details/index.css
index 6f493db26..5d4d037b7 100644
--- a/Client/src/Pages/PageSpeed/Details/index.css
+++ b/Client/src/Pages/PageSpeed/Details/index.css
@@ -34,7 +34,8 @@
}
.page-speed-details .stat-box,
-.page-speed-details > .MuiStack-root:last-child {
+.page-speed-details > .MuiStack-root:last-child,
+.page-speed-details > .MuiBox-root:nth-last-child(3) {
border: solid 1px var(--env-var-color-6);
border-radius: var(--env-var-radius-2);
background-color: var(--env-var-color-8);
diff --git a/Client/src/Pages/PageSpeed/Details/index.jsx b/Client/src/Pages/PageSpeed/Details/index.jsx
index ac455cd16..1af0fbba1 100644
--- a/Client/src/Pages/PageSpeed/Details/index.jsx
+++ b/Client/src/Pages/PageSpeed/Details/index.jsx
@@ -18,6 +18,7 @@ import GreenCheck from "../../../assets/icons/checkbox-green.svg?react";
import RedCheck from "../../../assets/icons/checkbox-red.svg?react";
import "./index.css";
+import PageSpeedLineChart from "../../../Components/Charts/PagespeedLineChart";
/**
* Displays a box with an icon, title, and value.
@@ -129,6 +130,7 @@ const PageSpeedDetails = () => {
const theme = useTheme();
const navigate = useNavigate();
const [monitor, setMonitor] = useState({});
+ const [audits, setAudits] = useState({});
const { monitorId } = useParams();
const { authToken } = useSelector((state) => state.auth);
@@ -142,87 +144,13 @@ const PageSpeedDetails = () => {
},
}
);
+
setMonitor(res.data.data);
+ setAudits(res.data.data.checks[0].audits);
};
fetchMonitor();
- }, []);
-
- const data = {
- _id: "66ad34001d483d284550e8cb",
- monitorId: "66ad2f5b4dfcd19cdbfc7205",
- status: true,
- accessibility: 100,
- bestPractices: 79,
- seo: 100,
- performance: 100,
- audits: {
- cls: {
- id: "cumulative-layout-shift",
- title: "Cumulative Layout Shift",
- description:
- "Cumulative Layout Shift measures the movement of visible elements within the viewport.",
- score: 0.1,
- scoreDisplayMode: "numeric",
- displayValue: "0",
- numericValue: 0,
- numericUnit: "unitless",
- _id: "66ad34001d483d284550e8cd",
- },
- si: {
- id: "speed-index",
- title: "Speed Index",
- description:
- "Speed Index shows how quickly the contents of a page are visibly populated.",
- score: 0.9,
- scoreDisplayMode: "numeric",
- displayValue: "0.6s",
- numericValue: 567.8934352052013,
- numericUnit: "millisecond",
- _id: "66ad34001d483d284550e8ce",
- },
- fcp: {
- id: "first-contentful-paint",
- title: "First Contentful Paint",
- description:
- "First Contentful Paint marks the time at which the first text or image is painted.",
- score: 0.8,
- scoreDisplayMode: "numeric",
- displayValue: "0.4s",
- numericValue: 419,
- numericUnit: "millisecond",
- _id: "66ad34001d483d284550e8cf",
- },
- lcp: {
- id: "largest-contentful-paint",
- title: "Largest Contentful Paint",
- description:
- "Largest Contentful Paint marks the time at which the largest text or image is painted.",
- score: 0.6,
- scoreDisplayMode: "numeric",
- displayValue: "0.4s",
- numericValue: 422.5,
- numericUnit: "millisecond",
- _id: "66ad34001d483d284550e8d0",
- },
- tbt: {
- id: "total-blocking-time",
- title: "Total Blocking Time",
- description:
- "Sum of all time periods between FCP and Time to Interactive",
- score: 0.9,
- scoreDisplayMode: "numeric",
- displayValue: "20ms",
- numericValue: 16,
- numericUnit: "millisecond",
- _id: "66ad34001d483d284550e8d1",
- },
- _id: "66ad34001d483d284550e8cc",
- },
- createdAt: "2024-08-02T19:31:12.732Z",
- updatedAt: "2024-08-02T19:31:12.732Z",
- __v: 0,
- };
+ }, [monitorId]);
/**
* Weight constants for different performance metrics.
@@ -310,7 +238,7 @@ const PageSpeedDetails = () => {
};
const pieSize = { width: 200, height: 200 };
- const pieData = getPieData(data.audits);
+ const pieData = getPieData(audits);
const colorMap = getColors(performance);
const [highlightedItem, setHighLightedItem] = useState(null);
@@ -421,6 +349,9 @@ const PageSpeedDetails = () => {
>
Score history
+
+
+
Performance report
{
pt={theme.gap.ml}
gap={theme.gap.ml}
>
- {Object.keys(data.audits).map((key) => {
+ {Object.keys(audits).map((key) => {
if (key === "_id") return;
- let audit = data.audits[key];
+ let audit = audits[key];
let metricParams = getColors(audit.score * 100);
let shape = (
@@ -618,7 +549,7 @@ const PageSpeedDetails = () => {
);
// Find the position where the number ends and the unit begins
- const match = audit.displayValue.match(/(\d+\.?\d*)([a-zA-Z]+)/);
+ const match = audit.displayValue.match(/(\d+\.?\d*)\s*([a-zA-Z]+)/);
let value;
let unit;
if (match) {