feat: add baidu suggest
This commit is contained in:
17
src/views/Selection/SugCont.js
Normal file
17
src/views/Selection/SugCont.js
Normal file
@@ -0,0 +1,17 @@
|
||||
import Box from "@mui/material/Box";
|
||||
import Typography from "@mui/material/Typography";
|
||||
|
||||
export default function SugCont({ sugs }) {
|
||||
return (
|
||||
<Box>
|
||||
{sugs.map(({ k, v }) => (
|
||||
<Typography component="div" key={k}>
|
||||
<Typography>{k}</Typography>
|
||||
<ul style={{ margin: "0" }}>
|
||||
<li>{v}</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
))}
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
@@ -6,10 +6,11 @@ import Stack from "@mui/material/Stack";
|
||||
import { useI18n } from "../../hooks/I18n";
|
||||
import { DEFAULT_TRANS_APIS, OPT_TRANS_BAIDU } from "../../config";
|
||||
import { useEffect, useState } from "react";
|
||||
import { apiTranslate, apiBaiduLangdetect } from "../../apis";
|
||||
import { apiTranslate, apiBaiduLangdetect, apiBaiduSuggest } from "../../apis";
|
||||
import { isValidWord } from "../../libs/utils";
|
||||
import CopyBtn from "./CopyBtn";
|
||||
import DictCont from "./DictCont";
|
||||
import SugCont from "./SugCont";
|
||||
|
||||
export default function TranCont({
|
||||
text,
|
||||
@@ -26,6 +27,7 @@ export default function TranCont({
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [error, setError] = useState("");
|
||||
const [dictResult, setDictResult] = useState(null);
|
||||
const [sugs, setSugs] = useState([]);
|
||||
|
||||
useEffect(() => {
|
||||
(async () => {
|
||||
@@ -34,6 +36,7 @@ export default function TranCont({
|
||||
setTrText("");
|
||||
setError("");
|
||||
setDictResult(null);
|
||||
setSugs([]);
|
||||
|
||||
// 互译
|
||||
if (toLang !== toLang2 && toLang2 !== "none") {
|
||||
@@ -45,6 +48,7 @@ export default function TranCont({
|
||||
}
|
||||
}
|
||||
|
||||
// 翻译
|
||||
const apiSetting =
|
||||
transApis[translator] || DEFAULT_TRANS_APIS[translator];
|
||||
const tranRes = await apiTranslate({
|
||||
@@ -72,6 +76,11 @@ export default function TranCont({
|
||||
setDictResult(JSON.parse(dictRes[2].result));
|
||||
}
|
||||
}
|
||||
|
||||
// 建议
|
||||
if (text.length < 20) {
|
||||
setSugs(await apiBaiduSuggest(text));
|
||||
}
|
||||
} catch (err) {
|
||||
setError(err.message);
|
||||
} finally {
|
||||
@@ -119,6 +128,7 @@ export default function TranCont({
|
||||
{loading && <CircularProgress size={24} />}
|
||||
{error && <Alert severity="error">{error}</Alert>}
|
||||
{dictResult && <DictCont dictResult={dictResult} />}
|
||||
{sugs.length > 0 && <SugCont sugs={sugs} />}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user