import { useRouter } from "next/router"; import React, { useEffect } from "react"; /** * A reusable 404 page. */ const Page: React.FC = () => { // [Note: 404 back to home] // // In the desktop app, if the user presses the refresh button when the URL // has an attached query parameter, e.g. "/gallery?collectionId=xxx", then // the code in next-electron-server blindly appends the html extension to // this URL, resulting in it trying to open "gallery?collectionId=xxx.html" // instead of "gallery.html". It doesn't find such a file, causing it open // "404.html" (the static file generated from this file). // // One way around is to patch the package, e.g. // https://github.com/ente-io/next-electron-server/pull/1/files // // However, redirecting back to the root is arguably a better fallback in // all cases (even when running on our website), since our app is a SPA. const router = useRouter(); useEffect(() => { void router.push("/"); }, [router]); return <>; }; export default Page;