From 07d457be4e6d067fd0aff4d5ae131617e987b173 Mon Sep 17 00:00:00 2001 From: Gabe Yuan Date: Fri, 8 Sep 2023 15:32:42 +0800 Subject: [PATCH] add clear all rules button --- src/config/i18n.js | 4 ++++ src/hooks/Rules.js | 8 +++++++- src/views/Options/Rules.js | 12 ++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/config/i18n.js b/src/config/i18n.js index 0204777..5b67700 100644 --- a/src/config/i18n.js +++ b/src/config/i18n.js @@ -481,6 +481,10 @@ export const I18N = { zh: `分享`, en: `Share`, }, + clear_all: { + zh: `清空`, + en: `Clear All`, + }, help: { zh: `求助`, en: `Help`, diff --git a/src/hooks/Rules.js b/src/hooks/Rules.js index 6a794f0..08acd7e 100644 --- a/src/hooks/Rules.js +++ b/src/hooks/Rules.js @@ -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 }; } diff --git a/src/views/Options/Rules.js b/src/views/Options/Rules.js index 6e0d9a6..a53b6eb 100644 --- a/src/views/Options/Rules.js +++ b/src/views/Options/Rules.js @@ -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} /> + +