| import { useSelectFileList } from '@/hooks/fileManagerHooks'; | |
| import { IFile } from '@/interfaces/database/file-manager'; | |
| import { formatDate } from '@/utils/date'; | |
| import { Button, Table } from 'antd'; | |
| import { ColumnsType } from 'antd/es/table'; | |
| import ActionCell from './action-cell'; | |
| import FileToolbar from './file-toolbar'; | |
| import { | |
| useGetRowSelection, | |
| useHandleConnectToKnowledge, | |
| useHandleCreateFolder, | |
| useHandleUploadFile, | |
| useNavigateToOtherFolder, | |
| useRenameCurrentFile, | |
| useSelectFileListLoading, | |
| } from './hooks'; | |
| import RenameModal from '@/components/rename-modal'; | |
| import ConnectToKnowledgeModal from './connect-to-knowledge-modal'; | |
| import FileUploadModal from './file-upload-modal'; | |
| import FolderCreateModal from './folder-create-modal'; | |
| import styles from './index.less'; | |
| const FileManager = () => { | |
| const fileList = useSelectFileList(); | |
| const rowSelection = useGetRowSelection(); | |
| const loading = useSelectFileListLoading(); | |
| const navigateToOtherFolder = useNavigateToOtherFolder(); | |
| const { | |
| fileRenameVisible, | |
| fileRenameLoading, | |
| hideFileRenameModal, | |
| showFileRenameModal, | |
| initialFileName, | |
| onFileRenameOk, | |
| } = useRenameCurrentFile(); | |
| const { | |
| folderCreateModalVisible, | |
| showFolderCreateModal, | |
| hideFolderCreateModal, | |
| folderCreateLoading, | |
| onFolderCreateOk, | |
| } = useHandleCreateFolder(); | |
| const { fileUploadVisible, hideFileUploadModal, showFileUploadModal } = | |
| useHandleUploadFile(); | |
| const { | |
| connectToKnowledgeVisible, | |
| hideConnectToKnowledgeModal, | |
| showConnectToKnowledgeModal, | |
| onConnectToKnowledgeOk, | |
| } = useHandleConnectToKnowledge(); | |
| const columns: ColumnsType<IFile> = [ | |
| { | |
| title: 'Name', | |
| dataIndex: 'name', | |
| key: 'name', | |
| render(value, record) { | |
| return record.type === 'folder' ? ( | |
| <Button | |
| type={'link'} | |
| onClick={() => navigateToOtherFolder(record.id)} | |
| > | |
| {value} | |
| </Button> | |
| ) : ( | |
| value | |
| ); | |
| }, | |
| }, | |
| { | |
| title: 'Upload Date', | |
| dataIndex: 'create_date', | |
| key: 'create_date', | |
| render(text) { | |
| return formatDate(text); | |
| }, | |
| }, | |
| { | |
| title: 'kbs_info', | |
| dataIndex: 'kbs_info', | |
| key: 'kbs_info', | |
| render(value) { | |
| console.info(value); | |
| return Array.isArray(value) | |
| ? value?.map((x) => x.kb_name).join(',') | |
| : ''; | |
| }, | |
| }, | |
| { | |
| title: 'Location', | |
| dataIndex: 'location', | |
| key: 'location', | |
| }, | |
| { | |
| title: 'Action', | |
| dataIndex: 'action', | |
| key: 'action', | |
| render: (text, record) => ( | |
| <ActionCell | |
| record={record} | |
| setCurrentRecord={(record: any) => { | |
| console.info(record); | |
| }} | |
| showRenameModal={showFileRenameModal} | |
| showConnectToKnowledgeModal={showConnectToKnowledgeModal} | |
| ></ActionCell> | |
| ), | |
| }, | |
| ]; | |
| return ( | |
| <section className={styles.fileManagerWrapper}> | |
| <FileToolbar | |
| selectedRowKeys={rowSelection.selectedRowKeys as string[]} | |
| showFolderCreateModal={showFolderCreateModal} | |
| showFileUploadModal={showFileUploadModal} | |
| ></FileToolbar> | |
| <Table | |
| dataSource={fileList} | |
| columns={columns} | |
| rowKey={'id'} | |
| rowSelection={rowSelection} | |
| loading={loading} | |
| /> | |
| <RenameModal | |
| visible={fileRenameVisible} | |
| hideModal={hideFileRenameModal} | |
| onOk={onFileRenameOk} | |
| initialName={initialFileName} | |
| loading={fileRenameLoading} | |
| ></RenameModal> | |
| <FolderCreateModal | |
| loading={folderCreateLoading} | |
| visible={folderCreateModalVisible} | |
| hideModal={hideFolderCreateModal} | |
| onOk={onFolderCreateOk} | |
| ></FolderCreateModal> | |
| <FileUploadModal | |
| visible={fileUploadVisible} | |
| hideModal={hideFileUploadModal} | |
| ></FileUploadModal> | |
| <ConnectToKnowledgeModal | |
| visible={connectToKnowledgeVisible} | |
| hideModal={hideConnectToKnowledgeModal} | |
| onOk={onConnectToKnowledgeOk} | |
| ></ConnectToKnowledgeModal> | |
| </section> | |
| ); | |
| }; | |
| export default FileManager; | |