mirror of
https://github.com/langgenius/dify.git
synced 2026-05-13 08:57:28 +08:00
Follow-up to SSR prefetch migration (2833965). Eliminates the Zustand
middleman that was syncing TanStack Query data into a separate store.
- Remove useGlobalPublicStore Zustand store entirely
- Create hooks/use-global-public.ts with useSystemFeatures,
useSystemFeaturesQuery, useIsSystemFeaturesPending, useSetupStatusQuery
- Migrate all 93 consumers to import from @/hooks/use-global-public
- Simplify global-public-context.tsx to a thin provider component
- Update 18 test files to mock the new hook interface
- Fix SetupStatusResponse.setup_at type from Date to string (JSON)
- Fix setup-status.spec.ts mock target to match consoleClient
BREAKING CHANGE: useGlobalPublicStore is removed. Use useSystemFeatures()
from @/hooks/use-global-public instead.
31 lines
913 B
TypeScript
31 lines
913 B
TypeScript
import type { SystemFeatures } from '@/types/feature'
|
|
import { useQuery } from '@tanstack/react-query'
|
|
import { consoleClient, consoleQuery } from '@/service/client'
|
|
import { defaultSystemFeatures } from '@/types/feature'
|
|
import { fetchSetupStatusWithCache } from '@/utils/setup-status'
|
|
|
|
export function useSystemFeaturesQuery() {
|
|
return useQuery({
|
|
queryKey: consoleQuery.systemFeatures.queryKey(),
|
|
queryFn: () => consoleClient.systemFeatures(),
|
|
})
|
|
}
|
|
|
|
export function useSystemFeatures(): SystemFeatures {
|
|
const { data } = useSystemFeaturesQuery()
|
|
return { ...defaultSystemFeatures, ...data }
|
|
}
|
|
|
|
export function useIsSystemFeaturesPending() {
|
|
const { isPending } = useSystemFeaturesQuery()
|
|
return isPending
|
|
}
|
|
|
|
export function useSetupStatusQuery() {
|
|
return useQuery({
|
|
queryKey: consoleQuery.setupStatus.queryKey(),
|
|
queryFn: fetchSetupStatusWithCache,
|
|
staleTime: Infinity,
|
|
})
|
|
}
|