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.
22 lines
610 B
TypeScript
22 lines
610 B
TypeScript
import type { SetupStatusResponse } from '@/models/common'
|
|
import { consoleClient } from '@/service/client'
|
|
|
|
const SETUP_STATUS_KEY = 'setup_status'
|
|
|
|
const isSetupStatusCached = (): boolean =>
|
|
localStorage.getItem(SETUP_STATUS_KEY) === 'finished'
|
|
|
|
export const fetchSetupStatusWithCache = async (): Promise<SetupStatusResponse> => {
|
|
if (isSetupStatusCached())
|
|
return { step: 'finished' }
|
|
|
|
const status = await consoleClient.setupStatus()
|
|
|
|
if (status.step === 'finished')
|
|
localStorage.setItem(SETUP_STATUS_KEY, 'finished')
|
|
else
|
|
localStorage.removeItem(SETUP_STATUS_KEY)
|
|
|
|
return status
|
|
}
|