import { ReactComponent as DeleteIcon } from '@/assets/svg/delete.svg'; import { useTranslate } from '@/hooks/common-hooks'; import { DownOutlined, FileTextOutlined, FolderOpenOutlined, PlusOutlined, SearchOutlined, } from '@ant-design/icons'; import { Breadcrumb, BreadcrumbProps, Button, Dropdown, Flex, Input, MenuProps, Space, } from 'antd'; import { useCallback, useMemo } from 'react'; import { useHandleBreadcrumbClick, useHandleDeleteFile, useSelectBreadcrumbItems, } from './hooks'; import SvgIcon from '@/components/svg-icon'; import { IListResult, useFetchParentFolderList, } from '@/hooks/file-manager-hooks'; import styles from './index.less'; interface IProps extends Pick { selectedRowKeys: string[]; showFolderCreateModal: () => void; showFileUploadModal: () => void; setSelectedRowKeys: (keys: string[]) => void; showMoveFileModal: (ids: string[]) => void; } const FileToolbar = ({ selectedRowKeys, showFolderCreateModal, showFileUploadModal, setSelectedRowKeys, searchString, handleInputChange, showMoveFileModal, }: IProps) => { const { t } = useTranslate('knowledgeDetails'); const breadcrumbItems = useSelectBreadcrumbItems(); const { handleBreadcrumbClick } = useHandleBreadcrumbClick(); const parentFolderList = useFetchParentFolderList(); const isKnowledgeBase = parentFolderList.at(-1)?.source_type === 'knowledgebase'; const itemRender: BreadcrumbProps['itemRender'] = ( currentRoute, params, items, ) => { const isLast = currentRoute?.path === items[items.length - 1]?.path; return isLast ? ( {currentRoute.title} ) : ( handleBreadcrumbClick(currentRoute.path)} > {currentRoute.title} ); }; const actionItems: MenuProps['items'] = useMemo(() => { return [ { key: '1', onClick: showFileUploadModal, label: (
), }, { type: 'divider' }, { key: '2', onClick: showFolderCreateModal, label: (
), }, ]; }, [t, showFolderCreateModal, showFileUploadModal]); const { handleRemoveFile } = useHandleDeleteFile( selectedRowKeys, setSelectedRowKeys, ); const handleShowMoveFileModal = useCallback(() => { showMoveFileModal(selectedRowKeys); }, [selectedRowKeys, showMoveFileModal]); const disabled = selectedRowKeys.length === 0; const items: MenuProps['items'] = useMemo(() => { return [ { key: '4', onClick: handleRemoveFile, label: ( {t('delete', { keyPrefix: 'common' })} ), }, { key: '5', onClick: handleShowMoveFileModal, label: ( {t('move', { keyPrefix: 'common' })} ), }, ]; }, [handleShowMoveFileModal, t, handleRemoveFile]); return (
{isKnowledgeBase || ( )} } /> {isKnowledgeBase || ( )}
); }; export default FileToolbar;