balibabu
fix: fix uploaded file time error #680 (#690)
8d2a400
raw
history blame
5.8 kB
import { useSelectFileList } from '@/hooks/fileManagerHooks';
import { IFile } from '@/interfaces/database/file-manager';
import { formatDate } from '@/utils/date';
import { Button, Flex, Space, Table, Tag, Typography } from 'antd';
import { ColumnsType } from 'antd/es/table';
import ActionCell from './action-cell';
import FileToolbar from './file-toolbar';
import {
useGetFilesPagination,
useGetRowSelection,
useHandleConnectToKnowledge,
useHandleCreateFolder,
useHandleUploadFile,
useNavigateToOtherFolder,
useRenameCurrentFile,
useSelectFileListLoading,
} from './hooks';
import FileUploadModal from '@/components/file-upload-modal';
import RenameModal from '@/components/rename-modal';
import SvgIcon from '@/components/svg-icon';
import { useTranslate } from '@/hooks/commonHooks';
import { formatNumberWithThousandsSeparator } from '@/utils/commonUtil';
import { getExtension } from '@/utils/documentUtils';
import ConnectToKnowledgeModal from './connect-to-knowledge-modal';
import FolderCreateModal from './folder-create-modal';
import styles from './index.less';
const { Text } = Typography;
const FileManager = () => {
const { t } = useTranslate('fileManager');
const fileList = useSelectFileList();
const { rowSelection, setSelectedRowKeys } = 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,
fileUploadLoading,
onFileUploadOk,
} = useHandleUploadFile();
const {
connectToKnowledgeVisible,
hideConnectToKnowledgeModal,
showConnectToKnowledgeModal,
onConnectToKnowledgeOk,
initialValue,
connectToKnowledgeLoading,
} = useHandleConnectToKnowledge();
const { pagination } = useGetFilesPagination();
const columns: ColumnsType<IFile> = [
{
title: t('name'),
dataIndex: 'name',
key: 'name',
fixed: 'left',
render(value, record) {
return (
<Flex gap={10} align="center">
<SvgIcon
name={`file-icon/${record.type === 'folder' ? 'folder' : getExtension(value)}`}
width={24}
></SvgIcon>
{record.type === 'folder' ? (
<Button
type={'link'}
className={styles.linkButton}
onClick={() => navigateToOtherFolder(record.id)}
>
<Text ellipsis={{ tooltip: value }}>{value}</Text>
</Button>
) : (
<Text ellipsis={{ tooltip: value }}>{value}</Text>
)}
</Flex>
);
},
},
{
title: t('uploadDate'),
dataIndex: 'create_time',
key: 'create_time',
render(text) {
return formatDate(text);
},
},
{
title: t('size'),
dataIndex: 'size',
key: 'size',
render(value) {
return (
formatNumberWithThousandsSeparator((value / 1024).toFixed(2)) + ' KB'
);
},
},
{
title: t('knowledgeBase'),
dataIndex: 'kbs_info',
key: 'kbs_info',
render(value) {
return Array.isArray(value) ? (
<Space wrap>
{value?.map((x) => (
<Tag color="blue" key={x.kb_id}>
{x.kb_name}
</Tag>
))}
</Space>
) : (
''
);
},
},
{
title: t('action'),
dataIndex: 'action',
key: 'action',
render: (text, record) => (
<ActionCell
record={record}
setCurrentRecord={(record: any) => {
console.info(record);
}}
showRenameModal={showFileRenameModal}
showConnectToKnowledgeModal={showConnectToKnowledgeModal}
setSelectedRowKeys={setSelectedRowKeys}
></ActionCell>
),
},
];
return (
<section className={styles.fileManagerWrapper}>
<FileToolbar
selectedRowKeys={rowSelection.selectedRowKeys as string[]}
showFolderCreateModal={showFolderCreateModal}
showFileUploadModal={showFileUploadModal}
setSelectedRowKeys={setSelectedRowKeys}
></FileToolbar>
<Table
dataSource={fileList}
columns={columns}
rowKey={'id'}
rowSelection={rowSelection}
loading={loading}
pagination={pagination}
scroll={{ scrollToFirstRowOnChange: true, x: '100%' }}
/>
<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}
loading={fileUploadLoading}
onOk={onFileUploadOk}
></FileUploadModal>
<ConnectToKnowledgeModal
initialValue={initialValue}
visible={connectToKnowledgeVisible}
hideModal={hideConnectToKnowledgeModal}
onOk={onConnectToKnowledgeOk}
loading={connectToKnowledgeLoading}
></ConnectToKnowledgeModal>
</section>
);
};
export default FileManager;