@panneau/field-upload 3.0.134 → 3.0.136

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.
Files changed (3) hide show
  1. package/es/index.js +116 -28
  2. package/lib/index.js +117 -28
  3. package/package.json +11 -11
package/es/index.js CHANGED
@@ -13,7 +13,7 @@ import { PropTypes as PropTypes$1 } from '@panneau/core';
13
13
  import { useQuery } from '@panneau/core/hooks';
14
14
  import Button from '@panneau/element-button';
15
15
  import Label from '@panneau/element-label';
16
- import { MediaCards } from '@panneau/element-media-card';
16
+ import MediaCard, { MediaCards } from '@panneau/element-media-card';
17
17
  import ResourceItemsList from '@panneau/list-resource-items';
18
18
  import Dialog from '@panneau/modal-dialog';
19
19
  import { useUppy } from '@panneau/uppy';
@@ -21,10 +21,11 @@ import '@uppy/core/dist/style.css';
21
21
  import '@uppy/dashboard/dist/style.css';
22
22
  import '@uppy/drag-drop/dist/style.css';
23
23
  import '@uppy/status-bar/dist/style.css';
24
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
24
25
 
25
26
  var styles = {"container":"panneau-field-upload-container","dashboard":"panneau-field-upload-dashboard","dashboardModal":"panneau-field-upload-dashboardModal","uppyDashboardContainer":"panneau-field-upload-uppyDashboardContainer"};
26
27
 
27
- var propTypes = {
28
+ var propTypes$1 = {
28
29
  value: PropTypes.oneOfType([PropTypes.array, PropTypes.shape({
29
30
  filename: PropTypes.string,
30
31
  size: PropTypes.number,
@@ -60,7 +61,7 @@ var propTypes = {
60
61
  onClickFind: PropTypes.func,
61
62
  className: PropTypes.string
62
63
  };
63
- var defaultProps = {
64
+ var defaultProps$1 = {
64
65
  value: null,
65
66
  types: ['audio', 'image', 'video'],
66
67
  fileTypes: null,
@@ -272,7 +273,8 @@ var UploadField = function UploadField(_ref) {
272
273
  }, [resourceModalOpen, setResourceModalOpen, setModalItems]);
273
274
  var onClickSelect = useCallback(function (newValue) {
274
275
  if (allowMultipleUploads) {
275
- if (newValue !== null) {
276
+ console.log('newValue', newValue);
277
+ if (newValue !== null && !isArray(newValue)) {
276
278
  var _ref2 = newValue || {},
277
279
  _ref2$id = _ref2.id,
278
280
  id = _ref2$id === void 0 ? null : _ref2$id;
@@ -294,6 +296,8 @@ var UploadField = function UploadField(_ref) {
294
296
  setModalItems([].concat(_toConsumableArray(modalItems || []), [newValue]));
295
297
  }
296
298
  }
299
+ } else if (newValue !== null && isArray(newValue)) {
300
+ setModalItems(newValue);
297
301
  }
298
302
  } else if (onChange !== null) {
299
303
  onChange(newValue);
@@ -417,27 +421,10 @@ var UploadField = function UploadField(_ref) {
417
421
  onQueryChange: onListQueryChange,
418
422
  onQueryReset: onListQueryReset,
419
423
  baseUrl: null,
420
- listProps: {
421
- actions: ['select'],
422
- actionsProps: {
423
- onClickSelect: onClickSelect,
424
- getSelectPropsFromItem: function getSelectPropsFromItem(item) {
425
- var _ref6 = item || {},
426
- _ref6$id = _ref6.id,
427
- itemId = _ref6$id === void 0 ? null : _ref6$id;
428
- var found = (modalItems || []).find(function () {
429
- var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
430
- _ref7$id = _ref7.id,
431
- modalItemId = _ref7$id === void 0 ? null : _ref7$id;
432
- return modalItemId === itemId;
433
- });
434
- return {
435
- outline: !found
436
- };
437
- }
438
- },
439
- withoutActionsColumn: true
440
- }
424
+ showActions: false,
425
+ selectable: true,
426
+ onSelectionChange: onClickSelect,
427
+ multipleSelection: allowMultipleUploads
441
428
  }), allowMultipleUploads ? /*#__PURE__*/React.createElement("div", {
442
429
  className: "d-flex mt-4 justify-content-between"
443
430
  }, modalItems !== null && modalItems.length > 0 ? /*#__PURE__*/React.createElement("span", {
@@ -458,8 +445,8 @@ var UploadField = function UploadField(_ref) {
458
445
  className: "d-block"
459
446
  }, /*#__PURE__*/React.createElement(Label, null, confirmButtonLabel)))) : null) : null);
460
447
  };
461
- UploadField.propTypes = propTypes;
462
- UploadField.defaultProps = defaultProps;
448
+ UploadField.propTypes = propTypes$1;
449
+ UploadField.defaultProps = defaultProps$1;
463
450
  var UploadField$1 = UploadField;
464
451
 
465
452
  var definition = [{
@@ -553,4 +540,105 @@ var FontField = function FontField(props) {
553
540
  };
554
541
  var FontField$1 = FontField;
555
542
 
556
- export { AudioField$1 as AudioField, DocumentField$1 as DocumentField, FontField$1 as FontField, ImageField$1 as ImageField, ImagesField$1 as ImagesField, VideoField$1 as VideoField, UploadField$1 as default, definition };
543
+ var _excluded = ["value", "onChange"];
544
+ var propTypes = {
545
+ value: PropTypes.shape({
546
+ published: PropTypes.bool,
547
+ featured: PropTypes.bool,
548
+ created_at: PropTypes.string,
549
+ updated_at: PropTypes.string
550
+ }),
551
+ onChange: PropTypes.func,
552
+ types: PropTypes.arrayOf(PropTypes.string),
553
+ fileTypes: PropTypes.arrayOf(PropTypes.string)
554
+ };
555
+ var defaultProps = {
556
+ value: null,
557
+ onChange: null,
558
+ types: null,
559
+ fileTypes: null
560
+ };
561
+ var UpdateFileField = function UpdateFileField(_ref) {
562
+ var value = _ref.value;
563
+ _ref.onChange;
564
+ var props = _objectWithoutProperties(_ref, _excluded);
565
+ var _useState = useState(null),
566
+ _useState2 = _slicedToArray(_useState, 2),
567
+ newValue = _useState2[0],
568
+ setNewValue = _useState2[1];
569
+ var _useState3 = useState(null),
570
+ _useState4 = _slicedToArray(_useState3, 2),
571
+ visibleFile = _useState4[0],
572
+ setVisibleFile = _useState4[1];
573
+ var _ref2 = value || {},
574
+ previousId = _ref2.id,
575
+ _ref2$type = _ref2.type,
576
+ type = _ref2$type === void 0 ? null : _ref2$type;
577
+ var onUploadChange = useCallback(function () {
578
+ var uploadedFile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
579
+ if (uploadedFile !== null) {
580
+ setVisibleFile(uploadedFile);
581
+ }
582
+ setNewValue(uploadedFile);
583
+ }, [setNewValue, setVisibleFile]);
584
+ var uppyProps = useMemo(function () {
585
+ return {
586
+ meta: {
587
+ previousId: previousId
588
+ }
589
+ };
590
+ }, [previousId]);
591
+ var uploadProps = useMemo(function () {
592
+ if (type === 'image') {
593
+ return {
594
+ types: ['image']
595
+ };
596
+ }
597
+ if (type === 'audio') {
598
+ return {
599
+ types: ['audio']
600
+ };
601
+ }
602
+ if (type === 'video') {
603
+ return {
604
+ types: ['video']
605
+ };
606
+ }
607
+ if (type === 'document') {
608
+ return {
609
+ types: [],
610
+ fileTypes: ['.pdf']
611
+ };
612
+ }
613
+ return null;
614
+ }, [type]);
615
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
616
+ className: "mb-3"
617
+ }, /*#__PURE__*/React.createElement(MediaCard, {
618
+ value: visibleFile || value,
619
+ withoutDescription: true
620
+ })), /*#__PURE__*/React.createElement("div", {
621
+ className: "mb-3"
622
+ }, /*#__PURE__*/React.createElement(UploadField$1, Object.assign({}, props, uploadProps, {
623
+ addButtonLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
624
+ id: "daHjZg",
625
+ defaultMessage: [{
626
+ "type": 0,
627
+ "value": "Edit file"
628
+ }]
629
+ }),
630
+ allowMultipleUploads: false,
631
+ linkPath: "panneauUrl",
632
+ onChange: onUploadChange,
633
+ onClose: onUploadChange,
634
+ maxNumberOfFiles: 1,
635
+ value: newValue,
636
+ withButton: true,
637
+ uppyProps: uppyProps
638
+ }))));
639
+ };
640
+ UpdateFileField.propTypes = propTypes;
641
+ UpdateFileField.defaultProps = defaultProps;
642
+ var UpdateFileField$1 = UpdateFileField;
643
+
644
+ export { AudioField$1 as AudioField, DocumentField$1 as DocumentField, FontField$1 as FontField, ImageField$1 as ImageField, ImagesField$1 as ImagesField, UpdateFileField$1 as UpdateFileField, VideoField$1 as VideoField, UploadField$1 as default, definition };
package/lib/index.js CHANGED
@@ -17,7 +17,7 @@ var core = require('@panneau/core');
17
17
  var hooks = require('@panneau/core/hooks');
18
18
  var Button = require('@panneau/element-button');
19
19
  var Label = require('@panneau/element-label');
20
- var elementMediaCard = require('@panneau/element-media-card');
20
+ var MediaCard = require('@panneau/element-media-card');
21
21
  var ResourceItemsList = require('@panneau/list-resource-items');
22
22
  var Dialog = require('@panneau/modal-dialog');
23
23
  var uppy = require('@panneau/uppy');
@@ -25,10 +25,11 @@ require('@uppy/core/dist/style.css');
25
25
  require('@uppy/dashboard/dist/style.css');
26
26
  require('@uppy/drag-drop/dist/style.css');
27
27
  require('@uppy/status-bar/dist/style.css');
28
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
28
29
 
29
30
  var styles = {"container":"panneau-field-upload-container","dashboard":"panneau-field-upload-dashboard","dashboardModal":"panneau-field-upload-dashboardModal","uppyDashboardContainer":"panneau-field-upload-uppyDashboardContainer"};
30
31
 
31
- var propTypes = {
32
+ var propTypes$1 = {
32
33
  value: PropTypes.oneOfType([PropTypes.array, PropTypes.shape({
33
34
  filename: PropTypes.string,
34
35
  size: PropTypes.number,
@@ -64,7 +65,7 @@ var propTypes = {
64
65
  onClickFind: PropTypes.func,
65
66
  className: PropTypes.string
66
67
  };
67
- var defaultProps = {
68
+ var defaultProps$1 = {
68
69
  value: null,
69
70
  types: ['audio', 'image', 'video'],
70
71
  fileTypes: null,
@@ -276,7 +277,8 @@ var UploadField = function UploadField(_ref) {
276
277
  }, [resourceModalOpen, setResourceModalOpen, setModalItems]);
277
278
  var onClickSelect = React.useCallback(function (newValue) {
278
279
  if (allowMultipleUploads) {
279
- if (newValue !== null) {
280
+ console.log('newValue', newValue);
281
+ if (newValue !== null && !isArray(newValue)) {
280
282
  var _ref2 = newValue || {},
281
283
  _ref2$id = _ref2.id,
282
284
  id = _ref2$id === void 0 ? null : _ref2$id;
@@ -298,6 +300,8 @@ var UploadField = function UploadField(_ref) {
298
300
  setModalItems([].concat(_toConsumableArray(modalItems || []), [newValue]));
299
301
  }
300
302
  }
303
+ } else if (newValue !== null && isArray(newValue)) {
304
+ setModalItems(newValue);
301
305
  }
302
306
  } else if (onChange !== null) {
303
307
  onChange(newValue);
@@ -344,7 +348,7 @@ var UploadField = function UploadField(_ref) {
344
348
  return /*#__PURE__*/React.createElement("div", {
345
349
  className: classNames([styles.container, _defineProperty({}, className, className !== null)]),
346
350
  ref: containerRef
347
- }, hasMedia ? /*#__PURE__*/React.createElement(elementMediaCard.MediaCards, {
351
+ }, hasMedia ? /*#__PURE__*/React.createElement(MediaCard.MediaCards, {
348
352
  value: values,
349
353
  namePath: namePath,
350
354
  thumbnailPath: thumbnailPath,
@@ -421,27 +425,10 @@ var UploadField = function UploadField(_ref) {
421
425
  onQueryChange: onListQueryChange,
422
426
  onQueryReset: onListQueryReset,
423
427
  baseUrl: null,
424
- listProps: {
425
- actions: ['select'],
426
- actionsProps: {
427
- onClickSelect: onClickSelect,
428
- getSelectPropsFromItem: function getSelectPropsFromItem(item) {
429
- var _ref6 = item || {},
430
- _ref6$id = _ref6.id,
431
- itemId = _ref6$id === void 0 ? null : _ref6$id;
432
- var found = (modalItems || []).find(function () {
433
- var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
434
- _ref7$id = _ref7.id,
435
- modalItemId = _ref7$id === void 0 ? null : _ref7$id;
436
- return modalItemId === itemId;
437
- });
438
- return {
439
- outline: !found
440
- };
441
- }
442
- },
443
- withoutActionsColumn: true
444
- }
428
+ showActions: false,
429
+ selectable: true,
430
+ onSelectionChange: onClickSelect,
431
+ multipleSelection: allowMultipleUploads
445
432
  }), allowMultipleUploads ? /*#__PURE__*/React.createElement("div", {
446
433
  className: "d-flex mt-4 justify-content-between"
447
434
  }, modalItems !== null && modalItems.length > 0 ? /*#__PURE__*/React.createElement("span", {
@@ -462,8 +449,8 @@ var UploadField = function UploadField(_ref) {
462
449
  className: "d-block"
463
450
  }, /*#__PURE__*/React.createElement(Label, null, confirmButtonLabel)))) : null) : null);
464
451
  };
465
- UploadField.propTypes = propTypes;
466
- UploadField.defaultProps = defaultProps;
452
+ UploadField.propTypes = propTypes$1;
453
+ UploadField.defaultProps = defaultProps$1;
467
454
  var UploadField$1 = UploadField;
468
455
 
469
456
  var definition = [{
@@ -557,11 +544,113 @@ var FontField = function FontField(props) {
557
544
  };
558
545
  var FontField$1 = FontField;
559
546
 
547
+ var _excluded = ["value", "onChange"];
548
+ var propTypes = {
549
+ value: PropTypes.shape({
550
+ published: PropTypes.bool,
551
+ featured: PropTypes.bool,
552
+ created_at: PropTypes.string,
553
+ updated_at: PropTypes.string
554
+ }),
555
+ onChange: PropTypes.func,
556
+ types: PropTypes.arrayOf(PropTypes.string),
557
+ fileTypes: PropTypes.arrayOf(PropTypes.string)
558
+ };
559
+ var defaultProps = {
560
+ value: null,
561
+ onChange: null,
562
+ types: null,
563
+ fileTypes: null
564
+ };
565
+ var UpdateFileField = function UpdateFileField(_ref) {
566
+ var value = _ref.value;
567
+ _ref.onChange;
568
+ var props = _objectWithoutProperties(_ref, _excluded);
569
+ var _useState = React.useState(null),
570
+ _useState2 = _slicedToArray(_useState, 2),
571
+ newValue = _useState2[0],
572
+ setNewValue = _useState2[1];
573
+ var _useState3 = React.useState(null),
574
+ _useState4 = _slicedToArray(_useState3, 2),
575
+ visibleFile = _useState4[0],
576
+ setVisibleFile = _useState4[1];
577
+ var _ref2 = value || {},
578
+ previousId = _ref2.id,
579
+ _ref2$type = _ref2.type,
580
+ type = _ref2$type === void 0 ? null : _ref2$type;
581
+ var onUploadChange = React.useCallback(function () {
582
+ var uploadedFile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
583
+ if (uploadedFile !== null) {
584
+ setVisibleFile(uploadedFile);
585
+ }
586
+ setNewValue(uploadedFile);
587
+ }, [setNewValue, setVisibleFile]);
588
+ var uppyProps = React.useMemo(function () {
589
+ return {
590
+ meta: {
591
+ previousId: previousId
592
+ }
593
+ };
594
+ }, [previousId]);
595
+ var uploadProps = React.useMemo(function () {
596
+ if (type === 'image') {
597
+ return {
598
+ types: ['image']
599
+ };
600
+ }
601
+ if (type === 'audio') {
602
+ return {
603
+ types: ['audio']
604
+ };
605
+ }
606
+ if (type === 'video') {
607
+ return {
608
+ types: ['video']
609
+ };
610
+ }
611
+ if (type === 'document') {
612
+ return {
613
+ types: [],
614
+ fileTypes: ['.pdf']
615
+ };
616
+ }
617
+ return null;
618
+ }, [type]);
619
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
620
+ className: "mb-3"
621
+ }, /*#__PURE__*/React.createElement(MediaCard, {
622
+ value: visibleFile || value,
623
+ withoutDescription: true
624
+ })), /*#__PURE__*/React.createElement("div", {
625
+ className: "mb-3"
626
+ }, /*#__PURE__*/React.createElement(UploadField$1, Object.assign({}, props, uploadProps, {
627
+ addButtonLabel: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
628
+ id: "daHjZg",
629
+ defaultMessage: [{
630
+ "type": 0,
631
+ "value": "Edit file"
632
+ }]
633
+ }),
634
+ allowMultipleUploads: false,
635
+ linkPath: "panneauUrl",
636
+ onChange: onUploadChange,
637
+ onClose: onUploadChange,
638
+ maxNumberOfFiles: 1,
639
+ value: newValue,
640
+ withButton: true,
641
+ uppyProps: uppyProps
642
+ }))));
643
+ };
644
+ UpdateFileField.propTypes = propTypes;
645
+ UpdateFileField.defaultProps = defaultProps;
646
+ var UpdateFileField$1 = UpdateFileField;
647
+
560
648
  exports.AudioField = AudioField$1;
561
649
  exports.DocumentField = DocumentField$1;
562
650
  exports.FontField = FontField$1;
563
651
  exports.ImageField = ImageField$1;
564
652
  exports.ImagesField = ImagesField$1;
653
+ exports.UpdateFileField = UpdateFileField$1;
565
654
  exports.VideoField = VideoField$1;
566
655
  exports.default = UploadField$1;
567
656
  exports.definition = definition;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/field-upload",
3
- "version": "3.0.134",
3
+ "version": "3.0.136",
4
4
  "description": "An Upload field",
5
5
  "keywords": [
6
6
  "javascript"
@@ -57,15 +57,15 @@
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.133",
61
- "@panneau/element-button": "^3.0.133",
62
- "@panneau/element-label": "^3.0.133",
63
- "@panneau/element-media-card": "^3.0.133",
64
- "@panneau/list-resource-items": "^3.0.134",
65
- "@panneau/modal-dialog": "^3.0.133",
66
- "@panneau/modal-upload": "^3.0.133",
67
- "@panneau/themes": "^3.0.133",
68
- "@panneau/uppy": "^3.0.133",
60
+ "@panneau/core": "^3.0.136",
61
+ "@panneau/element-button": "^3.0.136",
62
+ "@panneau/element-label": "^3.0.136",
63
+ "@panneau/element-media-card": "^3.0.136",
64
+ "@panneau/list-resource-items": "^3.0.136",
65
+ "@panneau/modal-dialog": "^3.0.136",
66
+ "@panneau/modal-upload": "^3.0.136",
67
+ "@panneau/themes": "^3.0.136",
68
+ "@panneau/uppy": "^3.0.136",
69
69
  "@uppy/core": "^3.9.1",
70
70
  "@uppy/dashboard": "^3.7.3",
71
71
  "@uppy/drag-drop": "^3.0.3",
@@ -82,5 +82,5 @@
82
82
  "publishConfig": {
83
83
  "access": "public"
84
84
  },
85
- "gitHead": "b30d648c1a3bc67e8cb134d896b06bea405fd9df"
85
+ "gitHead": "c9a3de330286a6cadd73651f1893adbbe090cd0e"
86
86
  }