mirror of
https://github.com/langgenius/dify.git
synced 2026-07-22 19:48:36 +08:00
33 lines
950 B
TypeScript
33 lines
950 B
TypeScript
import type { QueryClient } from '@tanstack/react-query'
|
|
import type { ReactNode } from 'react'
|
|
import { QueryClientProvider } from '@tanstack/react-query'
|
|
import { createStore, Provider } from 'jotai'
|
|
import { queryClientAtom } from 'jotai-tanstack-query'
|
|
import { createElement, useLayoutEffect, useMemo } from 'react'
|
|
import { seedRegisteredConsoleStateFixture } from '@/test/console/state-fixture'
|
|
|
|
export function QueryClientTestProvider({
|
|
children,
|
|
queryClient,
|
|
}: {
|
|
children?: ReactNode
|
|
queryClient: QueryClient
|
|
}) {
|
|
const store = useMemo(() => {
|
|
const nextStore = createStore()
|
|
nextStore.set(queryClientAtom, queryClient)
|
|
seedRegisteredConsoleStateFixture(nextStore)
|
|
return nextStore
|
|
}, [queryClient])
|
|
|
|
useLayoutEffect(() => {
|
|
seedRegisteredConsoleStateFixture(store)
|
|
})
|
|
|
|
return createElement(
|
|
QueryClientProvider,
|
|
{ client: queryClient },
|
|
createElement(Provider, { store }, children),
|
|
)
|
|
}
|