optimize some code
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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: {
|
||||||
|
|||||||
@@ -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 };
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
))}
|
))}
|
||||||
|
|||||||
Reference in New Issue
Block a user