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}
/>
+
+