mirror of
https://github.com/langgenius/dify.git
synced 2026-05-12 07:37:09 +08:00
41 lines
991 B
TypeScript
41 lines
991 B
TypeScript
'use client'
|
|
|
|
import type { ReactNode } from 'react'
|
|
import { useEffect } from 'react'
|
|
import Loading from '@/app/components/base/loading'
|
|
import { useSnippetAndEvaluationPlanAccess } from '@/hooks/use-snippet-and-evaluation-plan-access'
|
|
import { useRouter } from '@/next/navigation'
|
|
|
|
type SnippetAndEvaluationPlanGuardProps = {
|
|
children: ReactNode
|
|
fallbackHref: string
|
|
}
|
|
|
|
const SnippetAndEvaluationPlanGuard = ({
|
|
children,
|
|
fallbackHref,
|
|
}: SnippetAndEvaluationPlanGuardProps) => {
|
|
const router = useRouter()
|
|
const { canAccess, isReady } = useSnippetAndEvaluationPlanAccess()
|
|
|
|
useEffect(() => {
|
|
if (isReady && !canAccess)
|
|
router.replace(fallbackHref)
|
|
}, [canAccess, fallbackHref, isReady, router])
|
|
|
|
if (!isReady) {
|
|
return (
|
|
<div className="flex h-full items-center justify-center bg-background-body">
|
|
<Loading />
|
|
</div>
|
|
)
|
|
}
|
|
|
|
if (!canAccess)
|
|
return null
|
|
|
|
return <>{children}</>
|
|
}
|
|
|
|
export default SnippetAndEvaluationPlanGuard
|