From 966c78fb16be2d159f1f144cea5e4e2fa94e3197 Mon Sep 17 00:00:00 2001 From: Gabe Yuan Date: Sun, 3 Sep 2023 22:18:33 +0800 Subject: [PATCH] optimize test link --- src/views/Options/Setting.js | 86 +++++++++++++++++------------------- 1 file changed, 41 insertions(+), 45 deletions(-) diff --git a/src/views/Options/Setting.js b/src/views/Options/Setting.js index 856dba9..2478ce2 100644 --- a/src/views/Options/Setting.js +++ b/src/views/Options/Setting.js @@ -12,6 +12,7 @@ import { limitNumber } from "../../libs/utils"; import { useI18n } from "../../hooks/I18n"; import { apiTranslate } from "../../apis"; import { useAlert } from "../../hooks/Alert"; +import CircularProgress from "@mui/material/CircularProgress"; import { UI_LANGS, URL_KISS_PROXY, @@ -21,6 +22,43 @@ import { OPT_TRANS_DEEPL, OPT_TRANS_OPENAI, } from "../../config"; +import { useState } from "react"; + +function TestLink({ translator, setting }) { + const i18n = useI18n(); + const alert = useAlert(); + const [loading, setLoading] = useState(false); + const handleApiTest = async () => { + try { + setLoading(true); + const [text] = await apiTranslate({ + translator, + q: "hello world", + fromLang: "en", + toLang: "zh-CN", + setting, + }); + if (!text) { + throw new Error("empty reault"); + } + alert.success(i18n("test_success")); + } catch (err) { + alert.error(`${i18n("test_failed")}: ${err.message}`); + } finally { + setLoading(false); + } + }; + + if (loading) { + return ; + } + + return ( + + {i18n("click_test")} + + ); +} export default function Settings() { const i18n = useI18n(); @@ -62,24 +100,6 @@ export default function Settings() { } }; - const handleApiTest = async (translator) => { - try { - const [text] = await apiTranslate({ - translator, - q: "hello world", - fromLang: "en", - toLang: "zh-CN", - setting, - }); - if (!text) { - throw new Error("empty reault"); - } - alert.success(i18n("test_success")); - } catch (err) { - alert.error(`${i18n("test_failed")}: ${err.message}`); - } - }; - const { uiLang, googleUrl, @@ -185,15 +205,7 @@ export default function Settings() { <> {i18n("google_api")} {googleUrl && ( - { - handleApiTest(OPT_TRANS_GOOGLE); - }} - > - {i18n("click_test")} - + )} } @@ -211,15 +223,7 @@ export default function Settings() { <> {i18n("deepl_api")} {deeplUrl && ( - { - handleApiTest(OPT_TRANS_DEEPL); - }} - > - {i18n("click_test")} - + )} } @@ -242,15 +246,7 @@ export default function Settings() { <> {i18n("openai_api")} {openaiUrl && openaiPrompt && ( - { - handleApiTest(OPT_TRANS_OPENAI); - }} - > - {i18n("click_test")} - + )} }