import Box from "@mui/material/Box"; import Stack from "@mui/material/Stack"; import TextField from "@mui/material/TextField"; import MenuItem from "@mui/material/MenuItem"; import Grid from "@mui/material/Grid"; import { useI18n } from "../../hooks/I18n"; import { OPT_LANGS_FROM, OPT_LANGS_TO, OPT_TRANBOX_TRIGGER_CLICK, OPT_TRANBOX_TRIGGER_ALL, OPT_DICT_BING, OPT_DICT_ALL, OPT_SUG_ALL, OPT_SUG_YOUDAO, } from "../../config"; import ShortcutInput from "./ShortcutInput"; import FormControlLabel from "@mui/material/FormControlLabel"; import Switch from "@mui/material/Switch"; import { useCallback } from "react"; import { limitNumber } from "../../libs/utils"; import { useTranbox } from "../../hooks/Tranbox"; import { isExt } from "../../libs/client"; import { useApiList } from "../../hooks/Api"; import ValidationInput from "../../hooks/ValidationInput"; export default function Tranbox() { const i18n = useI18n(); const { tranboxSetting, updateTranbox } = useTranbox(); const { enabledApis } = useApiList(); const handleChange = (e) => { e.preventDefault(); let { name, value } = e.target; switch (name) { case "btnOffsetX": case "btnOffsetY": case "boxOffsetX": case "boxOffsetY": value = limitNumber(value, -200, 200); break; default: } updateTranbox({ [name]: value, }); }; const handleShortcutInput = useCallback( (val) => { updateTranbox({ tranboxShortcut: val }); }, [updateTranbox] ); const { transOpen, apiSlugs, fromLang, toLang, toLang2 = "en", tranboxShortcut, btnOffsetX, btnOffsetY, boxOffsetX = 0, boxOffsetY = 10, hideTranBtn = false, hideClickAway = false, simpleStyle = false, followSelection = false, autoHeight = false, triggerMode = OPT_TRANBOX_TRIGGER_CLICK, // extStyles = "", enDict = OPT_DICT_BING, enSug = OPT_SUG_YOUDAO, } = tranboxSetting; return ( { updateTranbox({ transOpen: !transOpen }); }} /> } label={i18n("toggle_selection_translate")} sx={{ width: "fit-content" }} /> {enabledApis.map((api) => ( {api.apiName} ))} {OPT_LANGS_FROM.map(([lang, name]) => ( {name} ))} {OPT_LANGS_TO.map(([lang, name]) => ( {name} ))} {i18n("disable")} {OPT_LANGS_TO.map(([lang, name]) => ( {name} ))} {i18n("disable")} {OPT_DICT_ALL.map((item) => ( {item} ))} {i18n("disable")} {OPT_SUG_ALL.map((item) => ( {item} ))} {OPT_TRANBOX_TRIGGER_ALL.map((item) => ( {i18n(`trigger_${item}`)} ))} {i18n("show")} {i18n("hide")} {i18n("disable")} {i18n("enable")} {i18n("disable")} {i18n("enable")} {i18n("disable")} {i18n("enable")} {i18n("disable")} {i18n("enable")} {!isExt && ( )} {/* */} ); }