From 74a5af4f66b97efeefdb47e75fe4463e8909d2dd Mon Sep 17 00:00:00 2001 From: Zoey Date: Mon, 10 Feb 2025 18:39:30 +0100 Subject: [PATCH] Added a page load time. --- src/components/BottomBar.js | 8 ++++++++ src/components/Home.js | 2 +- src/components/PageLoadTime.js | 33 +++++++++++++++++++++++++++++++++ src/components/Stream.js | 6 +++--- 4 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 src/components/PageLoadTime.js diff --git a/src/components/BottomBar.js b/src/components/BottomBar.js index 5c9a8bd..aec1368 100644 --- a/src/components/BottomBar.js +++ b/src/components/BottomBar.js @@ -1,9 +1,17 @@ +import PageLoadTime from "./PageLoadTime"; + const BottomBar = () => { return (
+
+

Powered by React.

+

© LibreBun 2023-2025

+
+

Page:

+
); }; diff --git a/src/components/Home.js b/src/components/Home.js index a5b1bf1..ab454ef 100644 --- a/src/components/Home.js +++ b/src/components/Home.js @@ -31,7 +31,7 @@ function Home() { Memos

Forgejo

- + Lemmy

Lemmy

diff --git a/src/components/PageLoadTime.js b/src/components/PageLoadTime.js new file mode 100644 index 0000000..d2e3753 --- /dev/null +++ b/src/components/PageLoadTime.js @@ -0,0 +1,33 @@ +import { useEffect, useState } from "react"; + +const PageLoadTime = ({ className }) => { + const [loadTime, setLoadTime] = useState(null); + + useEffect(() => { + const onLoad = () => { + const timing = performance.timing; + const pageLoadTime = timing.loadEventEnd - timing.navigationStart; + + if (pageLoadTime > 0) { + setLoadTime(pageLoadTime); + } else { + setLoadTime(performance.now()); + } + }; + + if (document.readyState === "complete") { + onLoad(); + } else { + window.addEventListener("load", onLoad); + return () => window.removeEventListener("load", onLoad); + } + }, []); + + return ( + + {loadTime !== null ? `${loadTime.toFixed(0)} ms` : ""} + + ); +}; + +export default PageLoadTime; \ No newline at end of file diff --git a/src/components/Stream.js b/src/components/Stream.js index 61c5c55..3889772 100644 --- a/src/components/Stream.js +++ b/src/components/Stream.js @@ -7,7 +7,7 @@ const StreamPage = () => {
- Join me on my actual Owncast site! + Join me on my actual Owncast site! ); }