add clear all rules button

This commit is contained in:
Gabe Yuan
2023-09-08 15:32:42 +08:00
parent d48296046e
commit 07d457be4e
3 changed files with 23 additions and 1 deletions

View File

@@ -481,6 +481,10 @@ export const I18N = {
zh: `分享`,
en: `Share`,
},
clear_all: {
zh: `清空`,
en: `Clear All`,
},
help: {
zh: `求助`,
en: `Help`,

View File

@@ -53,6 +53,12 @@ export function useRules() {
[list, updateRules]
);
const clear = useCallback(async () => {
let rules = [...list];
rules = rules.filter((item) => item.pattern === "*");
await updateRules(rules);
}, [list, updateRules]);
const put = useCallback(
async (pattern, obj) => {
const rules = [...list];
@@ -85,5 +91,5 @@ export function useRules() {
[list, updateRules]
);
return { list, add, del, put, merge };
return { list, add, del, clear, put, merge };
}

View File

@@ -47,6 +47,7 @@ import { syncShareRules } from "../../libs/sync";
import { debounce } from "../../libs/utils";
import { delSubRules, getSyncWithDefault } from "../../libs/storage";
import OwSubRule from "./OwSubRule";
import ClearAllIcon from "@mui/icons-material/ClearAll";
function RuleFields({ rule, rules, setShow, setKeyword }) {
const initFormValues = rule || {
@@ -570,6 +571,17 @@ function UserRules({ subRules }) {
selectedUrl={selectedUrl}
/>
<Button
size="small"
variant="outlined"
onClick={() => {
rules.clear();
}}
startIcon={<ClearAllIcon />}
>
{i18n("clear_all")}
</Button>
<HelpButton />
<FormControlLabel