diff --git a/src/hooks/FavWords.js b/src/hooks/FavWords.js index 4406116..14114b0 100644 --- a/src/hooks/FavWords.js +++ b/src/hooks/FavWords.js @@ -1,16 +1,25 @@ import { STOKEY_WORDS, KV_WORDS_KEY } from "../config"; import { useCallback, useMemo } from "react"; import { useStorage } from "./Storage"; +import { debounceSyncMeta } from "../libs/storage"; const DEFAULT_FAVWORDS = {}; export function useFavWords() { - const { data: favWords, save } = useStorage( + const { data: favWords, save: saveWords } = useStorage( STOKEY_WORDS, DEFAULT_FAVWORDS, KV_WORDS_KEY ); + const save = useCallback( + (objOrFn) => { + saveWords(objOrFn); + debounceSyncMeta(KV_WORDS_KEY); + }, + [saveWords] + ); + const toggleFav = useCallback( (word) => { save((prev) => { diff --git a/src/hooks/Rules.js b/src/hooks/Rules.js index ec09d3b..7b200ae 100644 --- a/src/hooks/Rules.js +++ b/src/hooks/Rules.js @@ -2,18 +2,27 @@ import { STOKEY_RULES, DEFAULT_RULES, KV_RULES_KEY } from "../config"; import { useStorage } from "./Storage"; import { checkRules } from "../libs/rules"; import { useCallback } from "react"; +import { debounceSyncMeta } from "../libs/storage"; /** * 规则 hook * @returns */ export function useRules() { - const { data: list = [], save } = useStorage( + const { data: list = [], save: saveRules } = useStorage( STOKEY_RULES, DEFAULT_RULES, KV_RULES_KEY ); + const save = useCallback( + (objOrFn) => { + saveRules(objOrFn); + debounceSyncMeta(KV_RULES_KEY); + }, + [saveRules] + ); + const add = useCallback( (rule) => { save((prev) => {