mirror of
https://github.com/langgenius/dify.git
synced 2026-05-13 00:33:37 +08:00
Follow-up to SSR prefetch migration. 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 consumers to import from @/hooks/use-global-public - Simplify global-public-context.tsx to a thin provider component - Update 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 - Regenerate eslint-suppressions.json for main branch 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
|
|
}
|