diff --git a/apps/desktop/layer/renderer/src/modules/discover/UnifiedDiscoverForm.tsx b/apps/desktop/layer/renderer/src/modules/discover/UnifiedDiscoverForm.tsx index e625cc296..160a69f45 100644 --- a/apps/desktop/layer/renderer/src/modules/discover/UnifiedDiscoverForm.tsx +++ b/apps/desktop/layer/renderer/src/modules/discover/UnifiedDiscoverForm.tsx @@ -18,7 +18,7 @@ import { repository } from "@pkg" import { useMutation } from "@tanstack/react-query" import { produce } from "immer" import type { ChangeEvent, CompositionEvent } from "react" -import { startTransition, useCallback, useEffect, useMemo } from "react" +import { startTransition, useCallback, useEffect, useMemo, useRef } from "react" import { useForm } from "react-hook-form" import { useTranslation } from "react-i18next" import { useSearchParams } from "react-router" @@ -121,7 +121,7 @@ export function UnifiedDiscoverForm() { const { watch, trigger } = form const target = watch("target") - const atomKey = keywordFromSearch + target + const atomKey = useRef(keywordFromSearch + target) // Validate default value from search params useEffect(() => { @@ -173,7 +173,7 @@ export function UnifiedDiscoverForm() { setDiscoverSearchData((prev) => ({ ...prev, - [atomKey]: data, + [atomKey.current]: data, })) return data @@ -238,7 +238,7 @@ export function UnifiedDiscoverForm() { if (!currentData) return setDiscoverSearchData( produce(currentData, (draft) => { - const sub = (draft[atomKey] || []).find((i) => { + const sub = (draft[atomKey.current] || []).find((i) => { if (item.feed) { return i.feed?.id === item.feed.id } @@ -261,7 +261,7 @@ export function UnifiedDiscoverForm() { if (!currentData) return setDiscoverSearchData( produce(currentData, (draft) => { - const sub = (draft[atomKey] || []).find( + const sub = (draft[atomKey.current] || []).find( (i) => i.feed?.id === item.feed?.id || i.list?.id === item.list?.id, ) if (!sub) return @@ -285,6 +285,7 @@ export function UnifiedDiscoverForm() { if (!ensureLogin()) { return } + atomKey.current = values.keyword + values.target mutation.mutate({ keyword: values.keyword, target: values.target }) }