import { Routes, Route, HashRouter } from "react-router-dom"; import About from "./About"; import Rules from "./Rules"; import Setting from "./Setting"; import Layout from "./Layout"; import SyncSetting from "./SyncSetting"; import { StoragesProvider } from "../../hooks/Storage"; import ThemeProvider from "../../hooks/Theme"; import { useEffect, useState } from "react"; import { isGm } from "../../libs/browser"; import { sleep } from "../../libs/utils"; import CircularProgress from "@mui/material/CircularProgress"; export default function Options() { const [error, setError] = useState(false); const [ready, setReady] = useState(false); useEffect(() => { if (!isGm) { return; } (async () => { let i = 0; for (;;) { await sleep(1000); if (window.GM) { setReady(true); break; } if (++i > 8) { setError(true); break; } } })(); }, []); if (error) { return (

Please confirm whether to install or enable{" "} KISS Translator{" "} GreaseMonkey script?

Click here{" "} to install, or click here{" "} for help.

); } if (isGm && !ready) { return (
); } return ( }> } /> } /> } /> } /> ); }