@panneau/field-upload 3.0.175 → 3.0.176
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.js +35 -22
- package/lib/index.js +35 -22
- package/package.json +12 -12
package/es/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import PropTypes from 'prop-types';
|
|
|
10
10
|
import React, { useCallback, useMemo, useState, useRef, useEffect } from 'react';
|
|
11
11
|
import { FormattedMessage } from 'react-intl';
|
|
12
12
|
import { PropTypes as PropTypes$1 } from '@panneau/core';
|
|
13
|
+
import { useModal } from '@panneau/core/contexts';
|
|
13
14
|
import Button from '@panneau/element-button';
|
|
14
15
|
import Label from '@panneau/element-label';
|
|
15
16
|
import MediaCard, { MediaCards } from '@panneau/element-media-card';
|
|
@@ -30,6 +31,7 @@ var propTypes$1 = {
|
|
|
30
31
|
size: PropTypes.number,
|
|
31
32
|
url: PropTypes.string
|
|
32
33
|
})]),
|
|
34
|
+
name: PropTypes.string,
|
|
33
35
|
types: PropTypes.arrayOf(PropTypes.oneOf(['audio', 'image', 'video', 'document'])),
|
|
34
36
|
fileTypes: PropTypes.arrayOf(PropTypes.string),
|
|
35
37
|
sources: PropTypes.arrayOf(PropTypes.oneOf(['webcam', 'facebook', 'instagram', 'dropbox', 'google-drive'])),
|
|
@@ -61,6 +63,7 @@ var propTypes$1 = {
|
|
|
61
63
|
var defaultProps$1 = {
|
|
62
64
|
resource: 'medias',
|
|
63
65
|
value: null,
|
|
66
|
+
name: null,
|
|
64
67
|
types: ['audio', 'image', 'video'],
|
|
65
68
|
fileTypes: null,
|
|
66
69
|
sources: ['webcam', 'facebook', 'instagram', 'dropbox', 'google-drive'],
|
|
@@ -108,6 +111,7 @@ var defaultProps$1 = {
|
|
|
108
111
|
var UploadField = function UploadField(_ref) {
|
|
109
112
|
var resource = _ref.resource,
|
|
110
113
|
value = _ref.value,
|
|
114
|
+
name = _ref.name,
|
|
111
115
|
types = _ref.types,
|
|
112
116
|
fileTypes = _ref.fileTypes,
|
|
113
117
|
sources = _ref.sources,
|
|
@@ -232,27 +236,35 @@ var UploadField = function UploadField(_ref) {
|
|
|
232
236
|
return value !== null ? [value] : null;
|
|
233
237
|
}, [value]);
|
|
234
238
|
var hasMedia = values !== null && values.length > 0;
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
+
|
|
240
|
+
// Resource-modal-picker
|
|
241
|
+
var _useModal = useModal(),
|
|
242
|
+
register = _useModal.register,
|
|
243
|
+
unregister = _useModal.unregister,
|
|
244
|
+
modalIsOpen = _useModal.modalIsOpen;
|
|
245
|
+
var modalKey = "upload-field-".concat(name);
|
|
246
|
+
var resourceModalOpen = modalIsOpen(modalKey);
|
|
239
247
|
var showResourceModal = withFind && resourceModalOpen;
|
|
240
248
|
var toggleResourceModal = useCallback(function () {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
249
|
+
if (resourceModalOpen) {
|
|
250
|
+
unregister(modalKey);
|
|
251
|
+
} else {
|
|
252
|
+
register(modalKey);
|
|
253
|
+
}
|
|
254
|
+
}, [resourceModalOpen, register, unregister, modalKey]);
|
|
255
|
+
var _useState3 = useState([]),
|
|
256
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
257
|
+
modalItems = _useState4[0],
|
|
258
|
+
setModalItems = _useState4[1];
|
|
247
259
|
var closeResourceModal = useCallback(function () {
|
|
248
|
-
|
|
260
|
+
unregister(modalKey);
|
|
249
261
|
setModalItems(null);
|
|
250
|
-
}, [resourceModalOpen,
|
|
262
|
+
}, [resourceModalOpen, unregister, modalKey, setModalItems]);
|
|
251
263
|
var openModalInResource = useCallback(function () {
|
|
252
|
-
|
|
264
|
+
unregister(modalKey);
|
|
253
265
|
setModalItems(null);
|
|
254
266
|
setModalOpened(true);
|
|
255
|
-
}, [modalOpened, setModalOpened]);
|
|
267
|
+
}, [modalOpened, unregister, modalKey, setModalOpened]);
|
|
256
268
|
var onChangeSelection = useCallback(function (newValue) {
|
|
257
269
|
if (allowMultipleUploads) {
|
|
258
270
|
if (newValue !== null && !isArray(newValue)) {
|
|
@@ -287,22 +299,22 @@ var UploadField = function UploadField(_ref) {
|
|
|
287
299
|
_ref6$ = _ref6[0],
|
|
288
300
|
finalValue = _ref6$ === void 0 ? null : _ref6$;
|
|
289
301
|
onChange(finalValue);
|
|
290
|
-
|
|
302
|
+
unregister(modalKey);
|
|
291
303
|
}
|
|
292
|
-
}, [onChange,
|
|
304
|
+
}, [onChange, unregister, modalKey, allowMultipleUploads, modalItems, setModalItems]);
|
|
293
305
|
var onConfirmSelection = useCallback(function () {
|
|
294
306
|
if (onChange !== null) {
|
|
295
307
|
onChange(modalItems);
|
|
296
|
-
|
|
308
|
+
unregister(modalKey);
|
|
297
309
|
}
|
|
298
|
-
}, [onChange, modalItems,
|
|
310
|
+
}, [onChange, modalItems, unregister, modalKey, allowMultipleUploads]);
|
|
299
311
|
var containerRef = useRef(null);
|
|
300
312
|
|
|
301
313
|
// Keep this stable, uppy doesnt like
|
|
302
|
-
var
|
|
303
|
-
|
|
304
|
-
finalUppy =
|
|
305
|
-
setFinalUppy =
|
|
314
|
+
var _useState5 = useState(null),
|
|
315
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
316
|
+
finalUppy = _useState6[0],
|
|
317
|
+
setFinalUppy = _useState6[1];
|
|
306
318
|
useEffect(function () {
|
|
307
319
|
if (uppy !== null && finalUppy === null) {
|
|
308
320
|
setFinalUppy(uppy);
|
|
@@ -378,6 +390,7 @@ var UploadField = function UploadField(_ref) {
|
|
|
378
390
|
showAddFilesPanel: true,
|
|
379
391
|
doneButtonHandler: closeModal
|
|
380
392
|
}) : null, showResourceModal ? /*#__PURE__*/React.createElement(ModalPicker, {
|
|
393
|
+
id: modalKey,
|
|
381
394
|
value: value,
|
|
382
395
|
resource: resource,
|
|
383
396
|
types: types,
|
package/lib/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var PropTypes = require('prop-types');
|
|
|
14
14
|
var React = require('react');
|
|
15
15
|
var reactIntl = require('react-intl');
|
|
16
16
|
var core = require('@panneau/core');
|
|
17
|
+
var contexts = require('@panneau/core/contexts');
|
|
17
18
|
var Button = require('@panneau/element-button');
|
|
18
19
|
var Label = require('@panneau/element-label');
|
|
19
20
|
var MediaCard = require('@panneau/element-media-card');
|
|
@@ -34,6 +35,7 @@ var propTypes$1 = {
|
|
|
34
35
|
size: PropTypes.number,
|
|
35
36
|
url: PropTypes.string
|
|
36
37
|
})]),
|
|
38
|
+
name: PropTypes.string,
|
|
37
39
|
types: PropTypes.arrayOf(PropTypes.oneOf(['audio', 'image', 'video', 'document'])),
|
|
38
40
|
fileTypes: PropTypes.arrayOf(PropTypes.string),
|
|
39
41
|
sources: PropTypes.arrayOf(PropTypes.oneOf(['webcam', 'facebook', 'instagram', 'dropbox', 'google-drive'])),
|
|
@@ -65,6 +67,7 @@ var propTypes$1 = {
|
|
|
65
67
|
var defaultProps$1 = {
|
|
66
68
|
resource: 'medias',
|
|
67
69
|
value: null,
|
|
70
|
+
name: null,
|
|
68
71
|
types: ['audio', 'image', 'video'],
|
|
69
72
|
fileTypes: null,
|
|
70
73
|
sources: ['webcam', 'facebook', 'instagram', 'dropbox', 'google-drive'],
|
|
@@ -112,6 +115,7 @@ var defaultProps$1 = {
|
|
|
112
115
|
var UploadField = function UploadField(_ref) {
|
|
113
116
|
var resource = _ref.resource,
|
|
114
117
|
value = _ref.value,
|
|
118
|
+
name = _ref.name,
|
|
115
119
|
types = _ref.types,
|
|
116
120
|
fileTypes = _ref.fileTypes,
|
|
117
121
|
sources = _ref.sources,
|
|
@@ -236,27 +240,35 @@ var UploadField = function UploadField(_ref) {
|
|
|
236
240
|
return value !== null ? [value] : null;
|
|
237
241
|
}, [value]);
|
|
238
242
|
var hasMedia = values !== null && values.length > 0;
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
+
|
|
244
|
+
// Resource-modal-picker
|
|
245
|
+
var _useModal = contexts.useModal(),
|
|
246
|
+
register = _useModal.register,
|
|
247
|
+
unregister = _useModal.unregister,
|
|
248
|
+
modalIsOpen = _useModal.modalIsOpen;
|
|
249
|
+
var modalKey = "upload-field-".concat(name);
|
|
250
|
+
var resourceModalOpen = modalIsOpen(modalKey);
|
|
243
251
|
var showResourceModal = withFind && resourceModalOpen;
|
|
244
252
|
var toggleResourceModal = React.useCallback(function () {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
253
|
+
if (resourceModalOpen) {
|
|
254
|
+
unregister(modalKey);
|
|
255
|
+
} else {
|
|
256
|
+
register(modalKey);
|
|
257
|
+
}
|
|
258
|
+
}, [resourceModalOpen, register, unregister, modalKey]);
|
|
259
|
+
var _useState3 = React.useState([]),
|
|
260
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
261
|
+
modalItems = _useState4[0],
|
|
262
|
+
setModalItems = _useState4[1];
|
|
251
263
|
var closeResourceModal = React.useCallback(function () {
|
|
252
|
-
|
|
264
|
+
unregister(modalKey);
|
|
253
265
|
setModalItems(null);
|
|
254
|
-
}, [resourceModalOpen,
|
|
266
|
+
}, [resourceModalOpen, unregister, modalKey, setModalItems]);
|
|
255
267
|
var openModalInResource = React.useCallback(function () {
|
|
256
|
-
|
|
268
|
+
unregister(modalKey);
|
|
257
269
|
setModalItems(null);
|
|
258
270
|
setModalOpened(true);
|
|
259
|
-
}, [modalOpened, setModalOpened]);
|
|
271
|
+
}, [modalOpened, unregister, modalKey, setModalOpened]);
|
|
260
272
|
var onChangeSelection = React.useCallback(function (newValue) {
|
|
261
273
|
if (allowMultipleUploads) {
|
|
262
274
|
if (newValue !== null && !isArray(newValue)) {
|
|
@@ -291,22 +303,22 @@ var UploadField = function UploadField(_ref) {
|
|
|
291
303
|
_ref6$ = _ref6[0],
|
|
292
304
|
finalValue = _ref6$ === void 0 ? null : _ref6$;
|
|
293
305
|
onChange(finalValue);
|
|
294
|
-
|
|
306
|
+
unregister(modalKey);
|
|
295
307
|
}
|
|
296
|
-
}, [onChange,
|
|
308
|
+
}, [onChange, unregister, modalKey, allowMultipleUploads, modalItems, setModalItems]);
|
|
297
309
|
var onConfirmSelection = React.useCallback(function () {
|
|
298
310
|
if (onChange !== null) {
|
|
299
311
|
onChange(modalItems);
|
|
300
|
-
|
|
312
|
+
unregister(modalKey);
|
|
301
313
|
}
|
|
302
|
-
}, [onChange, modalItems,
|
|
314
|
+
}, [onChange, modalItems, unregister, modalKey, allowMultipleUploads]);
|
|
303
315
|
var containerRef = React.useRef(null);
|
|
304
316
|
|
|
305
317
|
// Keep this stable, uppy doesnt like
|
|
306
|
-
var
|
|
307
|
-
|
|
308
|
-
finalUppy =
|
|
309
|
-
setFinalUppy =
|
|
318
|
+
var _useState5 = React.useState(null),
|
|
319
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
320
|
+
finalUppy = _useState6[0],
|
|
321
|
+
setFinalUppy = _useState6[1];
|
|
310
322
|
React.useEffect(function () {
|
|
311
323
|
if (uppy$1 !== null && finalUppy === null) {
|
|
312
324
|
setFinalUppy(uppy$1);
|
|
@@ -382,6 +394,7 @@ var UploadField = function UploadField(_ref) {
|
|
|
382
394
|
showAddFilesPanel: true,
|
|
383
395
|
doneButtonHandler: closeModal
|
|
384
396
|
}) : null, showResourceModal ? /*#__PURE__*/React.createElement(ModalPicker, {
|
|
397
|
+
id: modalKey,
|
|
385
398
|
value: value,
|
|
386
399
|
resource: resource,
|
|
387
400
|
types: types,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panneau/field-upload",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.176",
|
|
4
4
|
"description": "An Upload field",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript"
|
|
@@ -57,16 +57,16 @@
|
|
|
57
57
|
"@fortawesome/fontawesome-svg-core": "^6.5.1",
|
|
58
58
|
"@fortawesome/free-solid-svg-icons": "^6.5.1",
|
|
59
59
|
"@fortawesome/react-fontawesome": "^0.2.0",
|
|
60
|
-
"@panneau/core": "^3.0.
|
|
61
|
-
"@panneau/element-button": "^3.0.
|
|
62
|
-
"@panneau/element-label": "^3.0.
|
|
63
|
-
"@panneau/element-media-card": "^3.0.
|
|
64
|
-
"@panneau/list-resource-items": "^3.0.
|
|
65
|
-
"@panneau/modal-dialog": "^3.0.
|
|
66
|
-
"@panneau/modal-medias-picker": "^3.0.
|
|
67
|
-
"@panneau/modal-upload": "^3.0.
|
|
68
|
-
"@panneau/themes": "^3.0.
|
|
69
|
-
"@panneau/uppy": "^3.0.
|
|
60
|
+
"@panneau/core": "^3.0.176",
|
|
61
|
+
"@panneau/element-button": "^3.0.176",
|
|
62
|
+
"@panneau/element-label": "^3.0.176",
|
|
63
|
+
"@panneau/element-media-card": "^3.0.176",
|
|
64
|
+
"@panneau/list-resource-items": "^3.0.176",
|
|
65
|
+
"@panneau/modal-dialog": "^3.0.176",
|
|
66
|
+
"@panneau/modal-medias-picker": "^3.0.176",
|
|
67
|
+
"@panneau/modal-upload": "^3.0.176",
|
|
68
|
+
"@panneau/themes": "^3.0.176",
|
|
69
|
+
"@panneau/uppy": "^3.0.176",
|
|
70
70
|
"@uppy/core": "^3.9.1",
|
|
71
71
|
"@uppy/dashboard": "^3.7.3",
|
|
72
72
|
"@uppy/drag-drop": "^3.0.3",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"publishConfig": {
|
|
84
84
|
"access": "public"
|
|
85
85
|
},
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "ddd1878318abbb8da545c1883a50bf49c89ae9c5"
|
|
87
87
|
}
|