import { BulkOperateBar } from '@/components/bulk-operate-bar'; import { FileUploadDialog } from '@/components/file-upload-dialog'; import ListFilterBar from '@/components/list-filter-bar'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { useRowSelection } from '@/hooks/logic-hooks/use-row-selection'; import { useFetchFileList } from '@/hooks/use-file-request'; import { Upload } from 'lucide-react'; import { useTranslation } from 'react-i18next'; import { CreateFolderDialog } from './create-folder-dialog'; import { FileBreadcrumb } from './file-breadcrumb'; import { FilesTable } from './files-table'; import { MoveDialog } from './move-dialog'; import { useBulkOperateFile } from './use-bulk-operate-file'; import { useHandleCreateFolder } from './use-create-folder'; import { useHandleMoveFile } from './use-move-file'; import { useHandleUploadFile } from './use-upload-file'; export default function Files() { const { t } = useTranslation(); const { fileUploadVisible, hideFileUploadModal, showFileUploadModal, fileUploadLoading, onFileUploadOk, } = useHandleUploadFile(); const { folderCreateModalVisible, showFolderCreateModal, hideFolderCreateModal, folderCreateLoading, onFolderCreateOk, } = useHandleCreateFolder(); const { pagination, files, total, loading, setPagination, searchString, handleInputChange, } = useFetchFileList(); const { rowSelection, setRowSelection, rowSelectionIsEmpty, clearRowSelection, } = useRowSelection(); const { showMoveFileModal, moveFileVisible, onMoveFileOk, hideMoveFileModal, moveFileLoading, } = useHandleMoveFile({ clearRowSelection }); const { list } = useBulkOperateFile({ files, rowSelection, showMoveFileModal, setRowSelection, }); const leftPanel = (
); return (
{t('fileManager.uploadFile')} {t('fileManager.newFolder')} {!rowSelectionIsEmpty && } {fileUploadVisible && ( )} {folderCreateModalVisible && ( )} {moveFileVisible && ( )}
); }