'use client' import { useModal } from '@faceless-ui/modal' import { useWindowInfo } from '@faceless-ui/window-info' import { isImage } from 'payload/shared' import React from 'react' import { SelectInput } from '../../../fields/Select/Input.js' import { ChevronIcon } from '../../../icons/Chevron/index.js' import { XIcon } from '../../../icons/X/index.js' import { useConfig } from '../../../providers/Config/index.js' import { useTranslation } from '../../../providers/Translation/index.js' import { AnimateHeight } from '../../AnimateHeight/index.js' import { Button } from '../../Button/index.js' import { Drawer } from '../../Drawer/index.js' import { ErrorPill } from '../../ErrorPill/index.js' import { Pill } from '../../Pill/index.js' import { ShimmerEffect } from '../../ShimmerEffect/index.js' import { createThumbnail } from '../../Thumbnail/createThumbnail.js' import { Thumbnail } from '../../Thumbnail/index.js' import { Actions } from '../ActionsBar/index.js' import { AddFilesView } from '../AddFilesView/index.js' import './index.scss' import { useFormsManager } from '../FormsManager/index.js' import { useBulkUpload } from '../index.js' const addMoreFilesDrawerSlug = 'bulk-upload-drawer--add-more-files' const baseClass = 'file-selections' export function FileSidebar() { const { activeIndex, addFiles, forms, isInitializing, removeFile, setActiveIndex, totalErrorCount, } = useFormsManager() const { initialFiles, initialForms, maxFiles } = useBulkUpload() const { i18n, t } = useTranslation() const { closeModal, openModal } = useModal() const [showFiles, setShowFiles] = React.useState(false) const { breakpoints } = useWindowInfo() const handleRemoveFile = React.useCallback( (indexToRemove: number) => { removeFile(indexToRemove) }, [removeFile], ) const handleAddFiles = React.useCallback( (filelist: FileList) => { void addFiles(filelist) closeModal(addMoreFilesDrawerSlug) }, [addFiles, closeModal], ) const getFileSize = React.useCallback((file: File) => { const size = file.size const i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024)) const decimals = i > 1 ? 1 : 0 const formattedSize = (size / Math.pow(1024, i)).toFixed(decimals) + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i] return formattedSize }, []) const totalFileCount = isInitializing ? (initialFiles?.length ?? initialForms?.length) : forms.length const { collectionSlug: bulkUploadCollectionSlug, selectableCollections, setCollectionSlug, } = useBulkUpload() const { getEntityConfig } = useConfig() return (
1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}`} > {totalFileCount}{' '} {t(totalFileCount > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}