@panneau/field-upload 3.0.10 → 3.0.12

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 CHANGED
@@ -1,4 +1,5 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
3
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
4
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
4
5
  import { faTimes, faFileVideo, faFileImage, faFileAudio } from '@fortawesome/free-solid-svg-icons';
@@ -39,6 +40,7 @@ var propTypes = {
39
40
  withFind: PropTypes.bool,
40
41
  addButtonLabel: PropTypes$1.label,
41
42
  searchButtonLabel: PropTypes$1.label,
43
+ confirmButtonLabel: PropTypes$1.label,
42
44
  allowMultipleUploads: PropTypes.bool,
43
45
  maxNumberOfFiles: PropTypes.number,
44
46
  namePath: PropTypes.string,
@@ -74,6 +76,13 @@ var defaultProps = {
74
76
  "value": "Find a file"
75
77
  }]
76
78
  }),
79
+ confirmButtonLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
80
+ id: "UaVu03",
81
+ defaultMessage: [{
82
+ "type": 0,
83
+ "value": "Confirm"
84
+ }]
85
+ }),
77
86
  allowMultipleUploads: false,
78
87
  maxNumberOfFiles: 1,
79
88
  namePath: null,
@@ -95,6 +104,7 @@ var UploadField = function UploadField(_ref) {
95
104
  withFind = _ref.withFind,
96
105
  addButtonLabel = _ref.addButtonLabel,
97
106
  searchButtonLabel = _ref.searchButtonLabel,
107
+ confirmButtonLabel = _ref.confirmButtonLabel,
98
108
  allowMultipleUploads = _ref.allowMultipleUploads,
99
109
  maxNumberOfFiles = _ref.maxNumberOfFiles,
100
110
  namePath = _ref.namePath,
@@ -204,12 +214,45 @@ var UploadField = function UploadField(_ref) {
204
214
  var closeResourceModal = useCallback(function () {
205
215
  setResourceModalOpen(false);
206
216
  }, [resourceModalOpen, setResourceModalOpen]);
217
+ var _useState5 = useState([]),
218
+ _useState6 = _slicedToArray(_useState5, 2),
219
+ modalItems = _useState6[0],
220
+ setModalItems = _useState6[1];
207
221
  var onClickSelect = useCallback(function (newValue) {
208
- if (onChange !== null) {
222
+ if (allowMultipleUploads) {
223
+ if (newValue !== null) {
224
+ var _ref2 = newValue || {},
225
+ _ref2$id = _ref2.id,
226
+ id = _ref2$id === void 0 ? null : _ref2$id;
227
+ if (id !== null) {
228
+ var previous = (modalItems || []).find(function (_ref3) {
229
+ var _ref3$id = _ref3.id,
230
+ itemId = _ref3$id === void 0 ? null : _ref3$id;
231
+ return id === itemId;
232
+ });
233
+ if (previous) {
234
+ setModalItems((modalItems || []).filter(function (_ref4) {
235
+ var _ref4$id = _ref4.id,
236
+ itemId = _ref4$id === void 0 ? null : _ref4$id;
237
+ return id !== itemId;
238
+ }));
239
+ } else {
240
+ setModalItems([].concat(_toConsumableArray(modalItems), [newValue]));
241
+ }
242
+ }
243
+ }
244
+ } else if (onChange !== null) {
209
245
  onChange(newValue);
210
246
  setResourceModalOpen(false);
211
247
  }
212
- }, [onChange, setResourceModalOpen]);
248
+ }, [onChange, setResourceModalOpen, allowMultipleUploads, modalItems, setModalItems]);
249
+ console.log(modalItems);
250
+ var confirmResourceModal = useCallback(function () {
251
+ if (onChange !== null) {
252
+ onChange(modalItems);
253
+ setResourceModalOpen(false);
254
+ }
255
+ }, [onChange, setResourceModalOpen, allowMultipleUploads]);
213
256
  var initialQuery = useMemo(function () {
214
257
  return {
215
258
  types: types
@@ -237,9 +280,9 @@ var UploadField = function UploadField(_ref) {
237
280
  _media$data = media.data,
238
281
  data = _media$data === void 0 ? {} : _media$data,
239
282
  type = media.type;
240
- var _ref3 = data || {},
241
- _ref3$file = _ref3.file,
242
- file = _ref3$file === void 0 ? null : _ref3$file;
283
+ var _ref6 = data || {},
284
+ _ref6$file = _ref6.file,
285
+ file = _ref6$file === void 0 ? null : _ref6$file;
243
286
  var faIcon = null;
244
287
  switch (type) {
245
288
  case 'audio':
@@ -368,7 +411,13 @@ var UploadField = function UploadField(_ref) {
368
411
  },
369
412
  withoutActionsColumn: true
370
413
  }
371
- })) : null);
414
+ }), allowMultipleUploads ? /*#__PURE__*/React.createElement(Button, {
415
+ type: "button",
416
+ theme: "primary",
417
+ onClick: confirmResourceModal,
418
+ disabled: disabled,
419
+ className: "d-block ms-auto mt-2"
420
+ }, /*#__PURE__*/React.createElement(Label, null, confirmButtonLabel)) : null) : null);
372
421
  };
373
422
  UploadField.propTypes = propTypes;
374
423
  UploadField.defaultProps = defaultProps;
package/lib/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
6
7
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
8
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
8
9
  var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
@@ -31,6 +32,7 @@ require('@uppy/status-bar/dist/style.min.css');
31
32
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
32
33
 
33
34
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
35
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
34
36
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
35
37
  var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
36
38
  var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
@@ -60,6 +62,7 @@ var propTypes = {
60
62
  withFind: PropTypes__default["default"].bool,
61
63
  addButtonLabel: core.PropTypes.label,
62
64
  searchButtonLabel: core.PropTypes.label,
65
+ confirmButtonLabel: core.PropTypes.label,
63
66
  allowMultipleUploads: PropTypes__default["default"].bool,
64
67
  maxNumberOfFiles: PropTypes__default["default"].number,
65
68
  namePath: PropTypes__default["default"].string,
@@ -95,6 +98,13 @@ var defaultProps = {
95
98
  "value": "Find a file"
96
99
  }]
97
100
  }),
101
+ confirmButtonLabel: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
102
+ id: "UaVu03",
103
+ defaultMessage: [{
104
+ "type": 0,
105
+ "value": "Confirm"
106
+ }]
107
+ }),
98
108
  allowMultipleUploads: false,
99
109
  maxNumberOfFiles: 1,
100
110
  namePath: null,
@@ -116,6 +126,7 @@ var UploadField = function UploadField(_ref) {
116
126
  withFind = _ref.withFind,
117
127
  addButtonLabel = _ref.addButtonLabel,
118
128
  searchButtonLabel = _ref.searchButtonLabel,
129
+ confirmButtonLabel = _ref.confirmButtonLabel,
119
130
  allowMultipleUploads = _ref.allowMultipleUploads,
120
131
  maxNumberOfFiles = _ref.maxNumberOfFiles,
121
132
  namePath = _ref.namePath,
@@ -225,12 +236,45 @@ var UploadField = function UploadField(_ref) {
225
236
  var closeResourceModal = React.useCallback(function () {
226
237
  setResourceModalOpen(false);
227
238
  }, [resourceModalOpen, setResourceModalOpen]);
239
+ var _useState5 = React.useState([]),
240
+ _useState6 = _slicedToArray__default["default"](_useState5, 2),
241
+ modalItems = _useState6[0],
242
+ setModalItems = _useState6[1];
228
243
  var onClickSelect = React.useCallback(function (newValue) {
229
- if (onChange !== null) {
244
+ if (allowMultipleUploads) {
245
+ if (newValue !== null) {
246
+ var _ref2 = newValue || {},
247
+ _ref2$id = _ref2.id,
248
+ id = _ref2$id === void 0 ? null : _ref2$id;
249
+ if (id !== null) {
250
+ var previous = (modalItems || []).find(function (_ref3) {
251
+ var _ref3$id = _ref3.id,
252
+ itemId = _ref3$id === void 0 ? null : _ref3$id;
253
+ return id === itemId;
254
+ });
255
+ if (previous) {
256
+ setModalItems((modalItems || []).filter(function (_ref4) {
257
+ var _ref4$id = _ref4.id,
258
+ itemId = _ref4$id === void 0 ? null : _ref4$id;
259
+ return id !== itemId;
260
+ }));
261
+ } else {
262
+ setModalItems([].concat(_toConsumableArray__default["default"](modalItems), [newValue]));
263
+ }
264
+ }
265
+ }
266
+ } else if (onChange !== null) {
230
267
  onChange(newValue);
231
268
  setResourceModalOpen(false);
232
269
  }
233
- }, [onChange, setResourceModalOpen]);
270
+ }, [onChange, setResourceModalOpen, allowMultipleUploads, modalItems, setModalItems]);
271
+ console.log(modalItems);
272
+ var confirmResourceModal = React.useCallback(function () {
273
+ if (onChange !== null) {
274
+ onChange(modalItems);
275
+ setResourceModalOpen(false);
276
+ }
277
+ }, [onChange, setResourceModalOpen, allowMultipleUploads]);
234
278
  var initialQuery = React.useMemo(function () {
235
279
  return {
236
280
  types: types
@@ -258,9 +302,9 @@ var UploadField = function UploadField(_ref) {
258
302
  _media$data = media.data,
259
303
  data = _media$data === void 0 ? {} : _media$data,
260
304
  type = media.type;
261
- var _ref3 = data || {},
262
- _ref3$file = _ref3.file,
263
- file = _ref3$file === void 0 ? null : _ref3$file;
305
+ var _ref6 = data || {},
306
+ _ref6$file = _ref6.file,
307
+ file = _ref6$file === void 0 ? null : _ref6$file;
264
308
  var faIcon = null;
265
309
  switch (type) {
266
310
  case 'audio':
@@ -389,7 +433,13 @@ var UploadField = function UploadField(_ref) {
389
433
  },
390
434
  withoutActionsColumn: true
391
435
  }
392
- })) : null);
436
+ }), allowMultipleUploads ? /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
437
+ type: "button",
438
+ theme: "primary",
439
+ onClick: confirmResourceModal,
440
+ disabled: disabled,
441
+ className: "d-block ms-auto mt-2"
442
+ }, /*#__PURE__*/React__default["default"].createElement(Label__default["default"], null, confirmButtonLabel)) : null) : null);
393
443
  };
394
444
  UploadField.propTypes = propTypes;
395
445
  UploadField.defaultProps = defaultProps;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/field-upload",
3
- "version": "3.0.10",
3
+ "version": "3.0.12",
4
4
  "description": "An Upload field",
5
5
  "keywords": [
6
6
  "javascript"
@@ -59,10 +59,10 @@
59
59
  "@fortawesome/react-fontawesome": "^0.1.14",
60
60
  "@panneau/core": "^3.0.9",
61
61
  "@panneau/element-button": "^3.0.9",
62
- "@panneau/element-card": "^3.0.10",
62
+ "@panneau/element-card": "^3.0.11",
63
63
  "@panneau/element-label": "^3.0.9",
64
- "@panneau/list-resource-items": "^3.0.10",
65
- "@panneau/modal-dialog": "^3.0.9",
64
+ "@panneau/list-resource-items": "^3.0.12",
65
+ "@panneau/modal-dialog": "^3.0.12",
66
66
  "@panneau/themes": "^3.0.9",
67
67
  "@uppy/core": "^3.2.0",
68
68
  "@uppy/dashboard": "^3.4.0",
@@ -81,5 +81,5 @@
81
81
  "publishConfig": {
82
82
  "access": "public"
83
83
  },
84
- "gitHead": "cadf139564886d3491f4d4e8b0815542f82350a7"
84
+ "gitHead": "8165af45b604374d0e3707536197ed9f3098e83c"
85
85
  }