optimize some code

This commit is contained in:
Gabe Yuan
2023-07-28 15:34:05 +08:00
parent 937261097d
commit 497084fe8a
4 changed files with 20 additions and 22 deletions

View File

@@ -3,6 +3,7 @@
"description": "A simple translator extension", "description": "A simple translator extension",
"version": "1.1.3", "version": "1.1.3",
"author": "Gabe<yugang2002@gmail.com>", "author": "Gabe<yugang2002@gmail.com>",
"private": true,
"dependencies": { "dependencies": {
"@emotion/react": "^11.11.1", "@emotion/react": "^11.11.1",
"@emotion/styled": "^11.10.8", "@emotion/styled": "^11.10.8",

View File

@@ -179,7 +179,7 @@ export const I18N = {
en: `Wrong file type`, en: `Wrong file type`,
}, },
openai_api: { openai_api: {
zh: `OpenAI 接口地址`, zh: `OpenAI 接口`,
en: `OpenAI API`, en: `OpenAI API`,
}, },
openai_key: { openai_key: {

View File

@@ -15,46 +15,43 @@ import { matchValue } from "../libs/utils";
*/ */
export function useRules() { export function useRules() {
const storages = useStorages(); const storages = useStorages();
let rules = storages?.[STOKEY_RULES] || []; const list = storages?.[STOKEY_RULES] || [];
const add = async (rule) => { const add = async (rule) => {
rules = [...rules]; const rules = [...list];
if (rule.pattern === "*") { if (rule.pattern === "*") {
return; return;
} }
if (rules.map((item) => item.pattern).includes(rule.pattern)) { if (rules.map((item) => item.pattern).includes(rule.pattern)) {
return; return;
} }
await storage.setObj(STOKEY_RULES, [rule, ...rules]); rules.unshift(rule);
await storage.setObj(STOKEY_RULES, rules);
}; };
const del = async (pattern) => { const del = async (pattern) => {
rules = [...rules]; let rules = [...list];
if (pattern === "*") { if (pattern === "*") {
return; return;
} }
await storage.setObj( rules = rules.filter((item) => item.pattern !== pattern);
STOKEY_RULES, await storage.setObj(STOKEY_RULES, rules);
rules.filter((item) => item.pattern !== pattern)
);
}; };
const put = async (index, obj) => { const put = async (pattern, obj) => {
rules = [...rules]; const rules = [...list];
if (!rules[index]) { if (pattern === "*") {
return;
}
if (index === rules.length - 1) {
obj.pattern = "*"; obj.pattern = "*";
} }
rules[index] = { ...rules[index], ...obj }; const rule = rules.find((r) => r.pattern === pattern);
rule && Object.assign(rule, obj);
await storage.setObj(STOKEY_RULES, rules); await storage.setObj(STOKEY_RULES, rules);
}; };
const merge = async (newRules) => { const merge = async (newRules) => {
const fromLangs = OPT_LANGS_FROM.map((item) => item[0]); const fromLangs = OPT_LANGS_FROM.map((item) => item[0]);
const toLangs = OPT_LANGS_TO.map((item) => item[0]); const toLangs = OPT_LANGS_TO.map((item) => item[0]);
rules = [...rules]; const rules = [...list];
newRules newRules
.filter( .filter(
({ pattern, selector }) => ({ pattern, selector }) =>
@@ -95,5 +92,5 @@ export function useRules() {
await storage.setObj(STOKEY_RULES, rules); await storage.setObj(STOKEY_RULES, rules);
}; };
return { list: rules, add, del, put, merge }; return { list, add, del, put, merge };
} }

View File

@@ -23,7 +23,7 @@ import Grid from "@mui/material/Grid";
import FileDownloadIcon from "@mui/icons-material/FileDownload"; import FileDownloadIcon from "@mui/icons-material/FileDownload";
import FileUploadIcon from "@mui/icons-material/FileUpload"; import FileUploadIcon from "@mui/icons-material/FileUpload";
function RuleFields({ rule, rules, index, setShow }) { function RuleFields({ rule, rules, setShow }) {
const initFormValues = rule || { const initFormValues = rule || {
...DEFAULT_RULE, ...DEFAULT_RULE,
pattern: "", pattern: "",
@@ -97,7 +97,7 @@ function RuleFields({ rule, rules, index, setShow }) {
if (editMode) { if (editMode) {
// 编辑 // 编辑
setDisabled(true); setDisabled(true);
rules.put(index, formValues); rules.put(rule.pattern, formValues);
} else { } else {
// 添加 // 添加
rules.add(formValues); rules.add(formValues);
@@ -379,13 +379,13 @@ export default function Rules() {
{showAdd && <RuleFields rules={rules} setShow={setShowAdd} />} {showAdd && <RuleFields rules={rules} setShow={setShowAdd} />}
<Box> <Box>
{rules.list.map((rule, index) => ( {rules.list.map((rule) => (
<Accordion key={rule.pattern}> <Accordion key={rule.pattern}>
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
<Typography>{rule.pattern}</Typography> <Typography>{rule.pattern}</Typography>
</AccordionSummary> </AccordionSummary>
<AccordionDetails> <AccordionDetails>
<RuleFields rule={rule} index={index} rules={rules} /> <RuleFields rule={rule} rules={rules} />
</AccordionDetails> </AccordionDetails>
</Accordion> </Accordion>
))} ))}