import type { KnowledgeSpace } from '@dify/contracts/knowledge-fs/types.gen' import { useTranslation } from 'react-i18next' import { useFormatTimeFromNow } from '@/hooks/use-format-time-from-now' import Link from '@/next/link' function getBuiltinIconName(iconRef: string | undefined) { if (!iconRef?.startsWith('builtin:')) return undefined return iconRef.slice('builtin:'.length).replaceAll('-', ' ') } export function KnowledgeSpaceCard({ knowledgeSpace }: { knowledgeSpace: KnowledgeSpace }) { const { t } = useTranslation('dataset') const { formatTimeFromNow } = useFormatTimeFromNow() const unavailable = t(($) => $['cornerLabel.unavailable']) const iconName = getBuiltinIconName(knowledgeSpace.iconRef) const updatedAt = Date.parse(knowledgeSpace.updatedAt) const formattedUpdatedAt = Number.isNaN(updatedAt) ? knowledgeSpace.updatedAt : formatTimeFromNow(updatedAt) return (
{knowledgeSpace.description || t(($) => $['newKnowledge.noDescription'])}