Files
kiss-translator/src/index.js

62 lines
1.9 KiB
JavaScript
Raw Normal View History

2023-08-23 10:39:01 +08:00
import React, { useState } from "react";
2023-07-20 13:45:41 +08:00
import ReactDOM from "react-dom/client";
2023-08-09 16:30:08 +08:00
import CircularProgress from "@mui/material/CircularProgress";
2023-08-17 13:39:57 +08:00
import Divider from "@mui/material/Divider";
2023-08-09 16:30:08 +08:00
import ReactMarkdown from "react-markdown";
import Paper from "@mui/material/Paper";
2023-08-23 10:39:01 +08:00
import Stack from "@mui/material/Stack";
import Button from "@mui/material/Button";
2023-08-29 11:53:02 +08:00
import Link from "@mui/material/Link";
2023-08-09 16:30:08 +08:00
import { useFetch } from "./hooks/Fetch";
import { I18N, URL_RAW_PREFIX } from "./config";
function App() {
2023-08-23 10:39:01 +08:00
const [lang, setLang] = useState("zh");
2023-08-09 16:30:08 +08:00
const [data, loading, error] = useFetch(
2023-08-23 10:39:01 +08:00
`${URL_RAW_PREFIX}/${I18N?.["about_md"]?.[lang]}`
2023-08-09 16:30:08 +08:00
);
return (
<Paper sx={{ padding: 2, margin: 2 }}>
2023-08-23 10:39:01 +08:00
<Stack spacing={2} direction="row" justifyContent="flex-end">
<Button
variant="text"
onClick={() => {
setLang((pre) => (pre === "zh" ? "en" : "zh"));
}}
>
{lang === "zh" ? "ENGLISH" : "中文"}
</Button>
</Stack>
2023-08-29 11:53:02 +08:00
<Divider>
<Link
href={process.env.REACT_APP_HOMEPAGE}
>{`KISS Translator v${process.env.REACT_APP_VERSION}`}</Link>
</Divider>
2023-09-27 15:39:57 +08:00
<Stack spacing={2}>
2023-08-29 11:53:02 +08:00
<Link href={process.env.REACT_APP_USERSCRIPT_DOWNLOADURL}>
2023-09-27 15:39:57 +08:00
Install/Update Userscript for Tampermonkey/Violentmonkey
2023-08-29 11:53:02 +08:00
</Link>
2023-08-31 21:21:36 +08:00
<Link href={process.env.REACT_APP_USERSCRIPT_IOS_DOWNLOADURL}>
2023-09-27 15:39:57 +08:00
Install/Update Userscript for iOS Safari
2023-08-31 21:21:36 +08:00
</Link>
2023-09-27 15:39:57 +08:00
<Link href={process.env.REACT_APP_OPTIONSPAGE}>Open Options Page</Link>
2023-08-29 11:53:02 +08:00
</Stack>
2023-08-09 16:30:08 +08:00
{loading ? (
<center>
<CircularProgress />
</center>
) : (
<ReactMarkdown children={error ? error.message : data} />
)}
</Paper>
);
}
2023-07-20 13:45:41 +08:00
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<React.StrictMode>
2023-08-09 16:30:08 +08:00
<App />
2023-07-20 13:45:41 +08:00
</React.StrictMode>
);