add save rule button

This commit is contained in:
Gabe Yuan
2023-09-10 12:35:03 +08:00
parent 26f213cad2
commit 3a59a127d1
4 changed files with 61 additions and 4 deletions

View File

@@ -11,6 +11,8 @@ import {
DEFAULT_OW_RULE,
} from "../config";
import { loadOrFetchSubRules } from "./subRules";
import { getRulesWithDefault, setRules } from "./storage";
import { trySyncRules } from "./sync";
/**
* 根据href匹配规则
@@ -134,3 +136,19 @@ export const checkRules = (rules) => {
return rules;
};
/**
* 保存或更新rule
* @param {*} newRule
*/
export const saveRule = async (newRule) => {
const rules = await getRulesWithDefault();
const rule = rules.find((item) => isMatch(item.pattern, newRule.pattern));
if (rule) {
Object.assign(rule, { ...newRule, pattern: rule.pattern });
} else {
rules.unshift(newRule);
}
await setRules(rules);
trySyncRules();
};