fix(discover): prevent empty results when keyword changes without search (#4759)
Co-authored-by: Innei <i@innei.in>
This commit is contained in:
parent
844b5f490f
commit
07acce799e
|
|
@ -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 })
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue