optimize some code
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
"description": "A simple translator extension",
|
||||
"version": "1.1.3",
|
||||
"author": "Gabe<yugang2002@gmail.com>",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.11.1",
|
||||
"@emotion/styled": "^11.10.8",
|
||||
|
||||
@@ -179,7 +179,7 @@ export const I18N = {
|
||||
en: `Wrong file type`,
|
||||
},
|
||||
openai_api: {
|
||||
zh: `OpenAI 接口地址`,
|
||||
zh: `OpenAI 接口`,
|
||||
en: `OpenAI API`,
|
||||
},
|
||||
openai_key: {
|
||||
|
||||
@@ -15,46 +15,43 @@ import { matchValue } from "../libs/utils";
|
||||
*/
|
||||
export function useRules() {
|
||||
const storages = useStorages();
|
||||
let rules = storages?.[STOKEY_RULES] || [];
|
||||
const list = storages?.[STOKEY_RULES] || [];
|
||||
|
||||
const add = async (rule) => {
|
||||
rules = [...rules];
|
||||
const rules = [...list];
|
||||
if (rule.pattern === "*") {
|
||||
return;
|
||||
}
|
||||
if (rules.map((item) => item.pattern).includes(rule.pattern)) {
|
||||
return;
|
||||
}
|
||||
await storage.setObj(STOKEY_RULES, [rule, ...rules]);
|
||||
rules.unshift(rule);
|
||||
await storage.setObj(STOKEY_RULES, rules);
|
||||
};
|
||||
|
||||
const del = async (pattern) => {
|
||||
rules = [...rules];
|
||||
let rules = [...list];
|
||||
if (pattern === "*") {
|
||||
return;
|
||||
}
|
||||
await storage.setObj(
|
||||
STOKEY_RULES,
|
||||
rules.filter((item) => item.pattern !== pattern)
|
||||
);
|
||||
rules = rules.filter((item) => item.pattern !== pattern);
|
||||
await storage.setObj(STOKEY_RULES, rules);
|
||||
};
|
||||
|
||||
const put = async (index, obj) => {
|
||||
rules = [...rules];
|
||||
if (!rules[index]) {
|
||||
return;
|
||||
}
|
||||
if (index === rules.length - 1) {
|
||||
const put = async (pattern, obj) => {
|
||||
const rules = [...list];
|
||||
if (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);
|
||||
};
|
||||
|
||||
const merge = async (newRules) => {
|
||||
const fromLangs = OPT_LANGS_FROM.map((item) => item[0]);
|
||||
const toLangs = OPT_LANGS_TO.map((item) => item[0]);
|
||||
rules = [...rules];
|
||||
const rules = [...list];
|
||||
newRules
|
||||
.filter(
|
||||
({ pattern, selector }) =>
|
||||
@@ -95,5 +92,5 @@ export function useRules() {
|
||||
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 FileUploadIcon from "@mui/icons-material/FileUpload";
|
||||
|
||||
function RuleFields({ rule, rules, index, setShow }) {
|
||||
function RuleFields({ rule, rules, setShow }) {
|
||||
const initFormValues = rule || {
|
||||
...DEFAULT_RULE,
|
||||
pattern: "",
|
||||
@@ -97,7 +97,7 @@ function RuleFields({ rule, rules, index, setShow }) {
|
||||
if (editMode) {
|
||||
// 编辑
|
||||
setDisabled(true);
|
||||
rules.put(index, formValues);
|
||||
rules.put(rule.pattern, formValues);
|
||||
} else {
|
||||
// 添加
|
||||
rules.add(formValues);
|
||||
@@ -379,13 +379,13 @@ export default function Rules() {
|
||||
{showAdd && <RuleFields rules={rules} setShow={setShowAdd} />}
|
||||
|
||||
<Box>
|
||||
{rules.list.map((rule, index) => (
|
||||
{rules.list.map((rule) => (
|
||||
<Accordion key={rule.pattern}>
|
||||
<AccordionSummary expandIcon={<ExpandMoreIcon />}>
|
||||
<Typography>{rule.pattern}</Typography>
|
||||
</AccordionSummary>
|
||||
<AccordionDetails>
|
||||
<RuleFields rule={rule} index={index} rules={rules} />
|
||||
<RuleFields rule={rule} rules={rules} />
|
||||
</AccordionDetails>
|
||||
</Accordion>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user