@n3/react-fileuploader-classic
v1.0.7
Published
File uploader component for react applications
Maintainers
Keywords
Readme
@n3/react-fileuploader-classic
Важно
В связи с конфликтом версионирования (минорные и мажорные ветки уже заняты новым компонентом), начиная с версии 1.x классический file-uploader будет публиковаться в реестре под новым именем — @n3/react-fileuploader-classic
Установка
Версия 1.x и выше
npm install @n3/react-fileuploader-classicВерсия до 1.x
npm install @n3/react-fileuploader@~0.4.2API
Использование
import FileUploader from '@n3/react-fileuploader-classic';
...
<FileUploader
files={files}
isShow={isShow}
disabled={disabled}
multiple={multiple}
maxLength={maxLength}
help={help}
renderFile={renderFile}
uploadFile={uploadFile}
onChange={onChangeFiles}
showDownloadControl={showDownloadControl}
showRemoveControl={showRemoveControl}
getControls={getControls}
isDragAndDrop={isDragAndDrop}
/>Props
files- обязательное, массив файлов вида:id: String | Number - обязательное, id файлаname: String - обязательное, название файлаurl: String - ссылка на скачивание файлаsize: Number - размер файла в байтахextension: String - расширение файлаuploadErrors: any - ошибки при загрузке файла
isShow: Boolean - включен ли режим просмотра (отображается только список файлов, по умолчанию нет кнопки удаления), по умолчаниюfalsedisabled: Boolean - выключено ли поле ввода, по умолчаниюfalsemultiple: Boolean - возможен ли выбор нескольких файлов в инпуте, по умолчаниюtruemaxLength: Number - ограничивает максимальное количество файлов для загрузки, по умолчаниюnull- не ограниченоhelp: React Node - контент блока справа от кнопки, по умолчаниюnullinputProps: Object - объект дополнительных свойств дляinput[type="file"]элементаrenderFile: (fileId, props, FileBlockComponent, index) => Element - функция для переопределения рендера загруженных или загружающихся файлов.FileBlockComponent- оригинальный компонент для рендера лейбла файла,props- оригинальные props, которые принимаетFileBlockComponent,fileId- id файла,index- индекс файла в списке. Еслиprops.mode="submitting", то это список загружающихся файлов, если"ready", то загруженных, если"error", то не загруженных из-за ошибки во время загрузкиuploadFile: async (File) => {id, name, url, size, extension} - асихнхронная функция аплоада файла на сервер, должна возвращать новый файл для спискаonChange: (file[]) => void - колбэк, который вызывается при изменении списка файловshowDownloadControl: Boolean - показывать ли кнопку скачивания файла, по умолчаниюtrueshowRemoveControl: Boolean - показывать ли кнопку удаления файла, по умолчаниюtruegetControls: ({ file, disabled, showDownloadControl, showRemoveControl, removeFile }) => [{ render, renderIcon, text, ...rest }] - функция, создающая конфигурацию кнопок для управления файлом, перекрывает свойстваshowRemoveControlиshowDownloadControlrender- функция рендера кнопки, принимает первым аргументом объект вида
{ control, // текущий элемент массива className, // css-класс кнопки children, // содержимое кнопки }renderIcon- необязательное, функция рендера иконки, не принимает аргументовtest- тектс кнопки
isDragAndDrop: Boolean - показывать ли поле для драг-н-дропа, по умолчаниюtrue
PropTypes
import { fileIdPropType, filePropType } from '@n3/react-fileuploader-classic';fileIdPropType- тип id файлаfilePropType- тип файла из массиваfiles
UploadFileError
Ошибка, которая должна быть вызвана в случае неудачной загрузки файла в функции uploadFile
import { UploadFileError } from '@n3/react-fileuploader-classic';
const uploadFile = async () {
...
throw new UploadFileError([
'error1',
'error2',
'error3',
]);
}Стили
Подключение стандартных стилей:
import '@n3/react-fileuploader/dist/n3-react-fileuploader.css';