From 4a3bf7e96cc5641d002f7df7bd577dbb890889fe Mon Sep 17 00:00:00 2001 From: Gabe Yuan Date: Wed, 23 Aug 2023 10:39:01 +0800 Subject: [PATCH] some minor modifications --- src/index.js | 17 +++++++++++++++-- src/userscript.js | 31 +++++++++++++++++-------------- src/views/Options/Rules.js | 11 ++++++++++- 3 files changed, 42 insertions(+), 17 deletions(-) diff --git a/src/index.js b/src/index.js index e83dc72..1c99fe7 100644 --- a/src/index.js +++ b/src/index.js @@ -1,18 +1,31 @@ -import React from "react"; +import React, { useState } from "react"; import ReactDOM from "react-dom/client"; import CircularProgress from "@mui/material/CircularProgress"; import Divider from "@mui/material/Divider"; import ReactMarkdown from "react-markdown"; import Paper from "@mui/material/Paper"; +import Stack from "@mui/material/Stack"; +import Button from "@mui/material/Button"; import { useFetch } from "./hooks/Fetch"; import { I18N, URL_RAW_PREFIX } from "./config"; function App() { + const [lang, setLang] = useState("zh"); const [data, loading, error] = useFetch( - `${URL_RAW_PREFIX}/${I18N?.["about_md"]?.["zh"]}` + `${URL_RAW_PREFIX}/${I18N?.["about_md"]?.[lang]}` ); return ( + + + {`KISS Translator v${process.env.REACT_APP_VERSION}`} {loading ? (
diff --git a/src/userscript.js b/src/userscript.js index 41e081f..3cab60f 100644 --- a/src/userscript.js +++ b/src/userscript.js @@ -6,6 +6,7 @@ import { CacheProvider } from "@emotion/react"; import { getSetting, getRules, matchRule, getFab } from "./libs"; import { Translator } from "./libs/translator"; import { trySyncAllSubRules } from "./libs/rules"; +import { isGm } from "./libs/browser"; /** * 入口函数 @@ -57,20 +58,22 @@ import { trySyncAllSubRules } from "./libs/rules"; ); // 注册菜单 - GM.registerMenuCommand( - "Toggle Translate", - (event) => { - translator.toggle(); - }, - "Q" - ); - GM.registerMenuCommand( - "Toggle Style", - (event) => { - translator.toggleStyle(); - }, - "C" - ); + if (isGm) { + GM.registerMenuCommand( + "Toggle Translate", + (event) => { + translator.toggle(); + }, + "Q" + ); + GM.registerMenuCommand( + "Toggle Style", + (event) => { + translator.toggleStyle(); + }, + "C" + ); + } // 同步订阅规则 trySyncAllSubRules(setting); diff --git a/src/views/Options/Rules.js b/src/views/Options/Rules.js index 88998f1..009b16c 100644 --- a/src/views/Options/Rules.js +++ b/src/views/Options/Rules.js @@ -638,6 +638,7 @@ function SubRulesEdit({ subrules }) { const [inputText, setInputText] = useState(""); const [inputError, setInputError] = useState(""); const [showInput, setShowInput] = useState(false); + const [loading, setLoading] = useState(false); const handleCancel = (e) => { e.preventDefault(); @@ -661,6 +662,7 @@ function SubRulesEdit({ subrules }) { } try { + setLoading(true); const rules = await syncSubRules(url); if (rules.length === 0) { throw new Error("empty rules"); @@ -671,6 +673,8 @@ function SubRulesEdit({ subrules }) { } catch (err) { console.log("[fetch rules]", err); setInputError(i18n("error_fetch_url")); + } finally { + setLoading(false); } }; @@ -713,7 +717,12 @@ function SubRulesEdit({ subrules }) { /> -