Files
dify/web/context/query-client.tsx
yyh 6285a59508 refactor(web): extract isServer/isClient utility for consistent environment detection
Centralize server/client environment detection by introducing a dedicated utility
file instead of repeating `typeof window === 'undefined'` checks across the codebase.

This improves code maintainability and consistency across 8 files with 15 occurrences.

Closes #30802
2026-01-10 12:51:39 +08:00

31 lines
899 B
TypeScript

'use client'
import type { QueryClient } from '@tanstack/react-query'
import type { FC, PropsWithChildren } from 'react'
import { QueryClientProvider } from '@tanstack/react-query'
import { useState } from 'react'
import { TanStackDevtoolsLoader } from '@/app/components/devtools/tanstack/loader'
import { isServer } from '@/utils/client'
import { makeQueryClient } from './query-client-server'
let browserQueryClient: QueryClient | undefined
function getQueryClient() {
if (isServer) {
return makeQueryClient()
}
if (!browserQueryClient)
browserQueryClient = makeQueryClient()
return browserQueryClient
}
export const TanstackQueryInitializer: FC<PropsWithChildren> = ({ children }) => {
const [queryClient] = useState(getQueryClient)
return (
<QueryClientProvider client={queryClient}>
{children}
<TanStackDevtoolsLoader />
</QueryClientProvider>
)
}