'use client' import type { FC } from 'react' import React from 'react' import { useRouter } from 'next/navigation' import { type MetadataItemWithValue, isShowManageMetadataLocalStorageKey } from '../types' import Field from './field' import InputCombined from '../edit-metadata-batch/input-combined' import { RiDeleteBinLine, RiQuestionLine } from '@remixicon/react' import Tooltip from '@/app/components/base/tooltip' import cn from '@/utils/classnames' import Divider from '@/app/components/base/divider' import SelectMetadataModal from '../metadata-dataset/select-metadata-modal' import AddMetadataButton from '../add-metadata-button' type Props = { dataSetId: string className?: string noHeader?: boolean title?: string uppercaseTitle?: boolean titleTooltip?: string headerRight?: React.ReactNode contentClassName?: string list: MetadataItemWithValue[] isEdit?: boolean onChange?: (item: MetadataItemWithValue) => void onDelete?: (item: MetadataItemWithValue) => void onAdd?: (item: MetadataItemWithValue) => void } const InfoGroup: FC = ({ dataSetId, className, noHeader, title, uppercaseTitle = true, titleTooltip, headerRight, contentClassName, list, isEdit, onChange, onDelete, onAdd, }) => { const router = useRouter() const handleMangeMetadata = () => { localStorage.setItem(isShowManageMetadataLocalStorageKey, 'true') router.push(`/datasets/${dataSetId}/documents`) } return (
{!noHeader && (
{title}
{titleTooltip && ( {titleTooltip}
}> )}
{headerRight} {/*
setIsEdit(true)}>
*/}
)}
{isEdit && (
} onSave={data => onAdd?.(data)} onManage={handleMangeMetadata} />
)} {list.map((item, i) => ( {isEdit ? (
onChange?.({ ...item, value })} />
onDelete?.(item)} />
) : (
{item.value}
)}
))}
) } export default React.memo(InfoGroup)