mirror of
https://github.com/langgenius/dify.git
synced 2026-07-26 14:18:35 +08:00
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: GareArc <garethcxy@dify.ai>
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
'use client'
|
|
|
|
import type { ReactNode } from 'react'
|
|
import { Button } from '@langgenius/dify-ui/button'
|
|
import { useQuery } from '@tanstack/react-query'
|
|
import { useTranslation } from 'react-i18next'
|
|
import { FullScreenLoading } from '@/app/components/full-screen-loading'
|
|
import { isClient } from '@/utils/client'
|
|
import { systemFeaturesQueryOptions } from './client'
|
|
|
|
export function SystemFeaturesBootstrapBoundary({ children }: { children: ReactNode }) {
|
|
const { t } = useTranslation('common')
|
|
const { data, error, isFetching, refetch } = useQuery({
|
|
...systemFeaturesQueryOptions(),
|
|
enabled: isClient,
|
|
})
|
|
|
|
if (data) return children
|
|
if (!error || isFetching) return <FullScreenLoading />
|
|
|
|
return (
|
|
<div className="flex min-h-dvh w-full flex-1 flex-col items-center justify-center gap-4 bg-background-body">
|
|
<div role="alert" className="system-sm-regular text-text-tertiary">
|
|
{t(($) => $['errorBoundary.message'])}
|
|
</div>
|
|
<Button size="small" variant="secondary" onClick={() => void refetch()}>
|
|
{t(($) => $['errorBoundary.tryAgain'])}
|
|
</Button>
|
|
</div>
|
|
)
|
|
}
|