'use client' import type { FC } from 'react' import React, { useCallback } from 'react' import { useBoolean } from 'ahooks' import { RiDeleteBinLine, RiEditLine, } from '@remixicon/react' import type { DataSet } from '@/models/datasets' import { DataSourceType } from '@/models/datasets' import FileIcon from '@/app/components/base/file-icon' import { Folder } from '@/app/components/base/icons/src/vender/solid/files' import SettingsModal from '@/app/components/app/configuration/dataset-config/settings-modal' import Drawer from '@/app/components/base/drawer' import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints' import Badge from '@/app/components/base/badge' import { useKnowledge } from '@/hooks/use-knowledge' type Props = { payload: DataSet onRemove: () => void onChange: (dataSet: DataSet) => void readonly?: boolean } const DatasetItem: FC = ({ payload, onRemove, onChange, readonly, }) => { const media = useBreakpoints() const isMobile = media === MediaType.mobile const { formatIndexingTechniqueAndMethod } = useKnowledge() const [isShowSettingsModal, { setTrue: showSettingsModal, setFalse: hideSettingsModal, }] = useBoolean(false) const handleSave = useCallback((newDataset: DataSet) => { onChange(newDataset) hideSettingsModal() }, [hideSettingsModal, onChange]) return (
{ payload.data_source_type === DataSourceType.NOTION ? (
) :
}
{payload.name}
{!readonly && (
)} {isShowSettingsModal && ( )}
) } export default React.memo(DatasetItem)