mirror of
https://github.com/langgenius/dify.git
synced 2026-09-01 21:55:46 +08:00
59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
import { dehydrate, HydrationBoundary } from '@tanstack/react-query'
|
|
import { Suspense } from 'react'
|
|
import { getQueryClient } from '@/app/get-query-client'
|
|
import { ensureSystemFeatures } from '@/features/system-features/server'
|
|
import { getLocaleOnServer } from '@/i18n-config/server'
|
|
import { getServerConsoleClientContext, serverConsoleQuery } from '@/service/server'
|
|
import { HomeContent } from './home-content/home-content'
|
|
import { HomeShell } from './home-shell'
|
|
import { HomeSkeleton } from './home-skeleton'
|
|
|
|
export async function HomePage() {
|
|
const homeQueryClient = getQueryClient()
|
|
const [locale, context] = await Promise.all([
|
|
getLocaleOnServer(),
|
|
getServerConsoleClientContext(),
|
|
])
|
|
|
|
void homeQueryClient.prefetchQuery(
|
|
serverConsoleQuery.explore.apps.get.queryOptions({
|
|
context,
|
|
input: { query: { language: locale } },
|
|
}),
|
|
)
|
|
void homeQueryClient.prefetchQuery(
|
|
serverConsoleQuery.apps.recent.get.queryOptions({
|
|
context,
|
|
input: { query: { limit: 8 } },
|
|
}),
|
|
)
|
|
|
|
const enableExploreBanner = (await ensureSystemFeatures()).enable_explore_banner
|
|
if (enableExploreBanner) {
|
|
void homeQueryClient.prefetchQuery(
|
|
serverConsoleQuery.explore.banners.get.queryOptions({
|
|
context,
|
|
input: { query: { language: locale } },
|
|
}),
|
|
)
|
|
}
|
|
|
|
const dehydratedState = dehydrate(homeQueryClient)
|
|
|
|
return (
|
|
<HydrationBoundary state={dehydratedState}>
|
|
<Suspense
|
|
fallback={
|
|
<HomeShell>
|
|
<div className="flex flex-1 flex-col overflow-y-auto">
|
|
<HomeSkeleton showBanner={enableExploreBanner} />
|
|
</div>
|
|
</HomeShell>
|
|
}
|
|
>
|
|
<HomeContent />
|
|
</Suspense>
|
|
</HydrationBoundary>
|
|
)
|
|
}
|