dify/web/features/new-rag/knowledge-space-context.ts
2026-08-21 16:05:13 +08:00

27 lines
816 B
TypeScript

'use client'
import type {
KnowledgeFsProductPermission,
KnowledgeFsSpaceDetailResponse,
} from '@dify/contracts/api/console/knowledge-fs/types.gen'
import { createContext, use } from 'react'
export type KnowledgeSpaceContextValue = {
refetch: () => Promise<KnowledgeFsSpaceDetailResponse | undefined>
space: KnowledgeFsSpaceDetailResponse
}
export const KnowledgeSpaceContext = createContext<KnowledgeSpaceContextValue | undefined>(
undefined,
)
export function useKnowledgeSpace() {
const value = use(KnowledgeSpaceContext)
if (!value) throw new Error('useKnowledgeSpace must be used within KnowledgeSpaceProvider')
return value
}
export function useKnowledgeSpacePermission(permission: KnowledgeFsProductPermission) {
return useKnowledgeSpace().space.permission_keys.includes(permission)
}