'use client' import type { FC } from 'react' import React from 'react' import InfoGroup from './info-group' import NoData from './no-data' import Button from '@/app/components/base/button' import { RiEditLine } from '@remixicon/react' import { useTranslation } from 'react-i18next' import Divider from '@/app/components/base/divider' import useMetadataDocument from '../hooks/use-metadata-document' import type { FullDocumentDetail } from '@/models/datasets' import cn from '@/utils/classnames' const i18nPrefix = 'dataset.metadata.documentMetadata' type Props = { datasetId: string documentId: string className?: string docDetail: FullDocumentDetail } const MetadataDocument: FC = ({ datasetId, documentId, className, docDetail, }) => { const { t } = useTranslation() const { embeddingAvailable, isEdit, setIsEdit, list, tempList, setTempList, handleSelectMetaData, handleAddMetaData, hasData, builtList, builtInEnabled, startToEdit, handleSave, handleCancel, originInfo, technicalParameters, } = useMetadataDocument({ datasetId, documentId, docDetail }) return (
{(hasData || isEdit) ? (
) : ( ))} isEdit={isEdit} contentClassName='mt-5' onChange={(item) => { const newList = tempList.map(i => (i.name === item.name ? item : i)) setTempList(newList) }} onDelete={(item) => { const newList = tempList.filter(i => i.name !== item.name) setTempList(newList) }} onAdd={handleAddMetaData} onSelect={handleSelectMetaData} />
) : ( embeddingAvailable && setIsEdit(true)} /> )} {builtInEnabled && (
)} {/* Old Metadata */} ) } export default React.memo(MetadataDocument)