UNPKG

3.3 kBMarkdownView Raw
1## WExport File Manager
2React Based File Manager specially created for Wexport 2.0 Project
3
4### Installation
5```sh
6$ npm install wx-file-manager
7```
8
9### Example
10```javascript
11import FileManager from 'wx-file-manager'
12
13<FileManager
14 uploadText="Зерновая расписка"
15 file={file}
16 handleUpload={file => setFile(file)}
17 handleRemove={fileId => setFile(null)}
18 handleSign={file => setFile(file)}
19 objType={101}
20 tool="uploader"
21 extensions=".pdf, .png"
22 userId="<UserId> from SessionContext"
23/>
24
25```
26
27## Props
28+ `tool` - По умолчанию `viewer`. Если нужен загрузчик файлов - напиши `uploader`
29+ `uploadText?` - что будет написано сверху загрузчика, если не будет, то тупо не будет
30+ `theme?` - Есть 2 вида загрузчика: 1. Стандарный 2. Серая кнопка
31+ `objId?` - ID связанного объекта
32+ `objCode` - Code связанного объекта
33+ `objType?` - Тип связанного объекта (Товар Сделка Торги и тд)
34+ `handleUpload?` - Событие, которое срабатывает при загрузки файла на сервер. Возвращает объект `file`
35+ `handleRemove?` - Событие, которое срабатывает при удалении файла. Возвращает `fileId`
36+ `handleSign?` - Событие, которое срабатывает при подписании документа. Возвращает подписанные `file`
37+ `enableRemove?` - можно ли удалять файл, но помоему это уже не актульно
38+ `userId?` - равен null если текущему пользователю не нужно подписывать документ. Если нужно обязательно отправлять это значение.
39+ `extensions?` - `string` какие расширения разрешены для загузки файла
40+ `needToSign?` - По умолчанию `false`. Нужно ли подписывать файл пользователю.
41+ `maxFileSize?` - Максимальный размер загружаемого файла. По умолчанию `1024*1024*5` т.е. 5MB
42+ `enableFakeRemove` - Делает то же самое что `enableRemove` только не удаляет файл на сервере. Полезно когда необходимо редактировать форму.
43+ `handleFakeRemove` - Событие, которое срабатывает при удалении `fake` файла. Возвращает `fileId`
44
45### Примеры как нужно обрабатывать файл в компонентах:
46Можете написать лучше, но если не хотите заморачиваться, you are welcome :) `Ctrl+A Ctrl+C Ctrl+V`
47```javascript
48const handleUpload = file => {
49 setDocuments([...documents, file])
50}
51const handleRemove = fileId => {
52 setDocuments(_.filter(documents, doc => doc._id !== fileId))
53}
54const handleSign = file => {
55 _.remove(documents, doc => doc._id === file._id)
56 setDocuments([...documents, file])
57}
58```
\No newline at end of file