@panneau/medias 3.0.184 → 3.0.186

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 +52 -107
  2. package/lib/index.js +52 -107
  3. package/package.json +4 -4
package/es/index.js CHANGED
@@ -100,7 +100,7 @@ var useMedias = function useMedias() {
100
100
  var useMedias$1 = useMedias;
101
101
 
102
102
  var _excluded$6 = ["data"];
103
- var useMedia = function useMedia(id, opts) {
103
+ var useMedia$1 = function useMedia(id, opts) {
104
104
  var api = useMediasApi();
105
105
  var loader = useCallback(function () {
106
106
  return api.find(id);
@@ -112,7 +112,7 @@ var useMedia = function useMedia(id, opts) {
112
112
  story: data
113
113
  }, request);
114
114
  };
115
- var useMedia$1 = useMedia;
115
+ var useMedia$2 = useMedia$1;
116
116
 
117
117
  var useMediaCreate = function useMediaCreate() {
118
118
  var _useState = useState(false),
@@ -557,26 +557,21 @@ function MediaForm(_ref) {
557
557
  MediaForm.propTypes = propTypes$7;
558
558
  MediaForm.defaultProps = defaultProps$7;
559
559
 
560
- var MediasFormContext = /*#__PURE__*/React.createContext(null);
561
- var useMediasForm = function useMediasForm() {
562
- return useContext(MediasFormContext);
560
+ var MediaContext = /*#__PURE__*/React.createContext(null);
561
+ var useMedia = function useMedia() {
562
+ return useContext(MediaContext);
563
563
  };
564
564
  var propTypes$6 = {
565
565
  media: PropTypes.shape({
566
566
  id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
567
567
  }),
568
- fields: PropTypes.arrayOf(PropTypes.shape({
569
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
570
- })),
571
568
  children: PropTypes.node.isRequired
572
569
  };
573
570
  var defaultProps$6 = {
574
- media: null,
575
- fields: null
571
+ media: null
576
572
  };
577
- function MediasFormProvider(_ref) {
573
+ function MediaProvider(_ref) {
578
574
  var providedMedia = _ref.media,
579
- providedFields = _ref.fields,
580
575
  children = _ref.children;
581
576
  var _useState = useState(providedMedia),
582
577
  _useState2 = _slicedToArray(_useState, 2),
@@ -585,16 +580,15 @@ function MediasFormProvider(_ref) {
585
580
  var values = useMemo(function () {
586
581
  return {
587
582
  media: media,
588
- setMedia: setMedia,
589
- fields: providedFields
583
+ setMedia: setMedia
590
584
  };
591
- }, [media, setMedia, providedFields]);
592
- return /*#__PURE__*/React.createElement(MediasFormContext.Provider, {
585
+ }, [media, setMedia]);
586
+ return /*#__PURE__*/React.createElement(MediaContext.Provider, {
593
587
  value: values
594
588
  }, children);
595
589
  }
596
- MediasFormProvider.propTypes = propTypes$6;
597
- MediasFormProvider.defaultProps = defaultProps$6;
590
+ MediaProvider.propTypes = propTypes$6;
591
+ MediaProvider.defaultProps = defaultProps$6;
598
592
 
599
593
  var defaultColumns = [{
600
594
  id: 'image',
@@ -823,6 +817,8 @@ var propTypes$5 = {
823
817
  onUpload: PropTypes.func,
824
818
  onItemsChange: PropTypes.func,
825
819
  onLayoutChange: PropTypes.func,
820
+ onMediaFormOpen: PropTypes.func,
821
+ onMediaFormClose: PropTypes.func,
826
822
  selectable: PropTypes.bool,
827
823
  selectedItems: PropTypes.arrayOf(PropTypes.shape({})),
828
824
  onSelectionChange: PropTypes.func,
@@ -859,6 +855,8 @@ var defaultProps$5 = {
859
855
  onUpload: null,
860
856
  onItemsChange: null,
861
857
  onLayoutChange: null,
858
+ onMediaFormOpen: null,
859
+ onMediaFormClose: null,
862
860
  selectable: null,
863
861
  selectedItems: null,
864
862
  onSelectionChange: null,
@@ -885,6 +883,8 @@ function MediasBrowser(_ref) {
885
883
  onUpload = _ref.onUpload,
886
884
  onItemsChange = _ref.onItemsChange,
887
885
  onLayoutChange = _ref.onLayoutChange,
886
+ onMediaFormOpen = _ref.onMediaFormOpen,
887
+ onMediaFormClose = _ref.onMediaFormClose,
888
888
  selectable = _ref.selectable,
889
889
  selectedItems = _ref.selectedItems,
890
890
  onSelectionChange = _ref.onSelectionChange,
@@ -985,11 +985,17 @@ function MediasBrowser(_ref) {
985
985
  onLayoutChange(newLayout);
986
986
  }
987
987
  }, [setLayout]);
988
- var _useMediasForm = useMediasForm(),
989
- currentMedia = _useMediasForm.media,
990
- setCurrentMedia = _useMediasForm.setMedia,
991
- _useMediasForm$fields = _useMediasForm.fields,
992
- mediaFormFields = _useMediasForm$fields === void 0 ? null : _useMediasForm$fields;
988
+ var _useMedia = useMedia(),
989
+ currentMedia = _useMedia.media,
990
+ setCurrentMedia = _useMedia.setMedia;
991
+ useEffect(function () {
992
+ if (currentMedia !== null && onMediaFormOpen !== null) {
993
+ onMediaFormOpen();
994
+ }
995
+ if (currentMedia === null && onMediaFormClose !== null) {
996
+ onMediaFormClose();
997
+ }
998
+ }, [currentMedia]);
993
999
  var onOpenMedia = useCallback(function (media) {
994
1000
  setCurrentMedia(media);
995
1001
  }, [setCurrentMedia]);
@@ -1000,18 +1006,22 @@ function MediasBrowser(_ref) {
1000
1006
  setCurrentMedia(null);
1001
1007
  updateItem(item);
1002
1008
  }, [setCurrentMedia, updateItem]);
1003
- var onMediaUploaded = useCallback(function (medias) {
1009
+ var onMediaUploaded = useCallback(function () {
1010
+ var medias = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1011
+ if (medias === null) return;
1004
1012
  var rawMedias = isArray(medias) ? medias : [medias];
1005
1013
  if (onUpload !== null) {
1006
1014
  onUpload(rawMedias).then(function (newMedias) {
1007
1015
  if (onSelectionChange !== null) {
1008
1016
  onSelectionChange(newMedias);
1017
+ onQueryReset();
1009
1018
  reload();
1010
1019
  }
1011
1020
  });
1012
1021
  }
1013
1022
  if (onSelectionChange !== null) {
1014
1023
  onSelectionChange(rawMedias);
1024
+ onQueryReset();
1015
1025
  reload();
1016
1026
  }
1017
1027
  }, [onUpload]);
@@ -1108,7 +1118,7 @@ function MediasBrowser(_ref) {
1108
1118
  }]
1109
1119
  }))), /*#__PURE__*/React.createElement(MediaForm, {
1110
1120
  value: currentMedia,
1111
- fields: mediaFormFields || fields,
1121
+ fields: fields,
1112
1122
  onChange: setCurrentMedia,
1113
1123
  onSave: onSaveMedia,
1114
1124
  onClose: onCloseMedia,
@@ -1206,64 +1216,43 @@ function MediasBrowser(_ref) {
1206
1216
  MediasBrowser.propTypes = propTypes$5;
1207
1217
  MediasBrowser.defaultProps = defaultProps$5;
1208
1218
 
1209
- var _excluded$4 = ["items", "value", "onSelectionChange", "multipleSelection", "types", "onChange", "onClose", "withoutButtons", "className"];
1219
+ var _excluded$4 = ["items", "value", "onChange", "multiple", "className"];
1210
1220
  var propTypes$4 = {
1211
- // eslint-disable-next-line react/forbid-prop-types
1212
1221
  items: PropTypes.arrayOf(PropTypes.shape({})),
1213
1222
  value: PropTypes.arrayOf(PropTypes.shape({})),
1214
- onSelectionChange: PropTypes.func,
1215
- multipleSelection: PropTypes.bool,
1216
- types: PropTypes.arrayOf(PropTypes.string),
1223
+ multiple: PropTypes.bool,
1217
1224
  onChange: PropTypes.func.isRequired,
1218
- onClose: PropTypes.func,
1219
- withoutButtons: PropTypes.bool,
1220
1225
  className: PropTypes.string
1221
1226
  };
1222
1227
  var defaultProps$4 = {
1223
1228
  items: null,
1224
1229
  value: null,
1225
- onSelectionChange: null,
1226
- multipleSelection: false,
1227
- types: null,
1228
- onClose: null,
1229
- withoutButtons: false,
1230
+ multiple: false,
1230
1231
  className: null
1231
1232
  };
1232
1233
  function MediasPicker(_ref) {
1233
1234
  var initialItems = _ref.items,
1234
1235
  initialSelectedItems = _ref.value,
1235
- parentOnSelectionChange = _ref.onSelectionChange,
1236
- multipleSelection = _ref.multipleSelection,
1237
- types = _ref.types,
1238
1236
  onChange = _ref.onChange,
1239
- onClose = _ref.onClose,
1240
- withoutButtons = _ref.withoutButtons,
1237
+ multiple = _ref.multiple,
1241
1238
  className = _ref.className,
1242
1239
  props = _objectWithoutProperties(_ref, _excluded$4);
1243
- var _useMediasForm = useMediasForm(),
1244
- currentMedia = _useMediasForm.media;
1245
1240
  var _useState = useState(initialSelectedItems || null),
1246
1241
  _useState2 = _slicedToArray(_useState, 2),
1247
1242
  selectedItems = _useState2[0],
1248
1243
  setSelectedItems = _useState2[1];
1249
1244
  var onSelectionChange = useCallback(function (newSelection) {
1250
1245
  setSelectedItems(newSelection);
1246
+ if (onChange !== null) {
1247
+ onChange(selectedItems);
1248
+ }
1251
1249
  }, [setSelectedItems]);
1250
+
1252
1251
  // Sync from the top
1253
1252
  useEffect(function () {
1254
1253
  setSelectedItems(initialSelectedItems);
1255
1254
  }, [initialSelectedItems, setSelectedItems]);
1256
- useEffect(function () {
1257
- if (parentOnSelectionChange !== null) {
1258
- parentOnSelectionChange(selectedItems);
1259
- }
1260
- }, [selectedItems, parentOnSelectionChange]);
1261
- var onConfirmSelection = useCallback(function () {
1262
- if (onChange !== null) {
1263
- onChange(selectedItems || null);
1264
- }
1265
- }, [selectedItems, onChange]);
1266
- var empty = selectedItems === null || isArray(selectedItems) && selectedItems.length === 0;
1255
+ console.log('selectedItems', selectedItems);
1267
1256
  return /*#__PURE__*/React.createElement("div", {
1268
1257
  className: className
1269
1258
  }, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
@@ -1272,46 +1261,8 @@ function MediasPicker(_ref) {
1272
1261
  selectable: true,
1273
1262
  selectedItems: selectedItems,
1274
1263
  onSelectionChange: onSelectionChange,
1275
- multipleSelection: multipleSelection,
1276
- types: types
1277
- // extraItems={
1278
- // !multiple && initialSelectedItems !== null
1279
- // ? [initialSelectedItems]
1280
- // : initialSelectedItems
1281
- // }
1282
- }, props)), !withoutButtons && currentMedia === null ? /*#__PURE__*/React.createElement("div", {
1283
- className: "d-flex w-100 align-items-end justify-content-end mt-3"
1284
- }, /*#__PURE__*/React.createElement("div", {
1285
- className: "btn-group"
1286
- }, onClose !== null ? /*#__PURE__*/React.createElement(Button, {
1287
- type: "button",
1288
- theme: "secondary",
1289
- onClick: onClose,
1290
- className: "d-block me-2"
1291
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
1292
- id: "PyxZY2",
1293
- defaultMessage: [{
1294
- "type": 0,
1295
- "value": "Cancel"
1296
- }]
1297
- })) : null, /*#__PURE__*/React.createElement(Button, {
1298
- type: "button",
1299
- theme: "primary",
1300
- onClick: onConfirmSelection,
1301
- className: "d-block"
1302
- }, empty ? /*#__PURE__*/React.createElement(FormattedMessage, {
1303
- id: "Krgf6j",
1304
- defaultMessage: [{
1305
- "type": 0,
1306
- "value": "Clear selection"
1307
- }]
1308
- }) : /*#__PURE__*/React.createElement(FormattedMessage, {
1309
- id: "rvOVCV",
1310
- defaultMessage: [{
1311
- "type": 0,
1312
- "value": "Confirm selection"
1313
- }]
1314
- })))) : null);
1264
+ multipleSelection: multiple
1265
+ }, props)));
1315
1266
  }
1316
1267
  MediasPicker.propTypes = propTypes$4;
1317
1268
  MediasPicker.defaultProps = defaultProps$4;
@@ -1338,7 +1289,7 @@ function MediasBrowserContainer(_ref) {
1338
1289
  props = _objectWithoutProperties(_ref, _excluded$3);
1339
1290
  return /*#__PURE__*/React.createElement(MediasApiProvider, {
1340
1291
  api: api
1341
- }, /*#__PURE__*/React.createElement(MediasFormProvider, {
1292
+ }, /*#__PURE__*/React.createElement(MediaProvider, {
1342
1293
  media: media,
1343
1294
  fields: fields
1344
1295
  }, /*#__PURE__*/React.createElement(MediasBrowser, props)));
@@ -1346,33 +1297,27 @@ function MediasBrowserContainer(_ref) {
1346
1297
  MediasBrowserContainer.propTypes = propTypes$3;
1347
1298
  MediasBrowserContainer.defaultProps = defaultProps$3;
1348
1299
 
1349
- var _excluded$2 = ["api", "media", "fields", "onChange"];
1300
+ var _excluded$2 = ["api", "media", "onChange"];
1350
1301
  var propTypes$2 = {
1351
1302
  api: apiPropTypes,
1352
1303
  media: PropTypes.shape({
1353
1304
  id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1354
1305
  }),
1355
- fields: PropTypes.arrayOf(PropTypes.shape({
1356
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1357
- })),
1358
1306
  onChange: PropTypes.func.isRequired
1359
1307
  };
1360
1308
  var defaultProps$2 = {
1361
1309
  api: null,
1362
- media: null,
1363
- fields: null
1310
+ media: null
1364
1311
  };
1365
1312
  function MediasPickerContainer(_ref) {
1366
1313
  var api = _ref.api,
1367
1314
  media = _ref.media,
1368
- fields = _ref.fields,
1369
1315
  onChange = _ref.onChange,
1370
1316
  props = _objectWithoutProperties(_ref, _excluded$2);
1371
1317
  return /*#__PURE__*/React.createElement(MediasApiProvider, {
1372
1318
  api: api
1373
- }, /*#__PURE__*/React.createElement(MediasFormProvider, {
1374
- media: media,
1375
- fields: fields
1319
+ }, /*#__PURE__*/React.createElement(MediaProvider, {
1320
+ media: media
1376
1321
  }, /*#__PURE__*/React.createElement(MediasPicker, Object.assign({}, props, {
1377
1322
  onChange: onChange
1378
1323
  }))));
@@ -1540,4 +1485,4 @@ function MediasResourcePicker(_ref) {
1540
1485
  MediasResourcePicker.propTypes = propTypes;
1541
1486
  MediasResourcePicker.defaultProps = defaultProps;
1542
1487
 
1543
- export { MediaForm, MediasApiProvider, MediasBrowser, MediasBrowserContainer, MediasPicker, MediasPickerContainer, MediasResourceBrowser, MediasResourcePicker, apiPropTypes, defaultColumns as columns, defaultFields as fields, defaultFilters as filters, useMedia$1 as useMedia, useMediaCreate$1 as useMediaCreate, useMediaDelete$1 as useMediaDelete, useMediaTrash$1 as useMediaTrash, useMediaUpdate$1 as useMediaUpdate, useMedias$1 as useMedias, useMediasApi };
1488
+ export { MediaForm, MediasApiProvider, MediasBrowser, MediasBrowserContainer, MediasPicker, MediasPickerContainer, MediasResourceBrowser, MediasResourcePicker, apiPropTypes, defaultColumns as columns, defaultFields as fields, defaultFilters as filters, useMedia$2 as useMedia, useMediaCreate$1 as useMediaCreate, useMediaDelete$1 as useMediaDelete, useMediaTrash$1 as useMediaTrash, useMediaUpdate$1 as useMediaUpdate, useMedias$1 as useMedias, useMediasApi };
package/lib/index.js CHANGED
@@ -102,7 +102,7 @@ var useMedias = function useMedias() {
102
102
  var useMedias$1 = useMedias;
103
103
 
104
104
  var _excluded$6 = ["data"];
105
- var useMedia = function useMedia(id, opts) {
105
+ var useMedia$1 = function useMedia(id, opts) {
106
106
  var api = useMediasApi();
107
107
  var loader = React.useCallback(function () {
108
108
  return api.find(id);
@@ -114,7 +114,7 @@ var useMedia = function useMedia(id, opts) {
114
114
  story: data$1
115
115
  }, request);
116
116
  };
117
- var useMedia$1 = useMedia;
117
+ var useMedia$2 = useMedia$1;
118
118
 
119
119
  var useMediaCreate = function useMediaCreate() {
120
120
  var _useState = React.useState(false),
@@ -559,26 +559,21 @@ function MediaForm(_ref) {
559
559
  MediaForm.propTypes = propTypes$7;
560
560
  MediaForm.defaultProps = defaultProps$7;
561
561
 
562
- var MediasFormContext = /*#__PURE__*/React.createContext(null);
563
- var useMediasForm = function useMediasForm() {
564
- return React.useContext(MediasFormContext);
562
+ var MediaContext = /*#__PURE__*/React.createContext(null);
563
+ var useMedia = function useMedia() {
564
+ return React.useContext(MediaContext);
565
565
  };
566
566
  var propTypes$6 = {
567
567
  media: PropTypes.shape({
568
568
  id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
569
569
  }),
570
- fields: PropTypes.arrayOf(PropTypes.shape({
571
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
572
- })),
573
570
  children: PropTypes.node.isRequired
574
571
  };
575
572
  var defaultProps$6 = {
576
- media: null,
577
- fields: null
573
+ media: null
578
574
  };
579
- function MediasFormProvider(_ref) {
575
+ function MediaProvider(_ref) {
580
576
  var providedMedia = _ref.media,
581
- providedFields = _ref.fields,
582
577
  children = _ref.children;
583
578
  var _useState = React.useState(providedMedia),
584
579
  _useState2 = _slicedToArray(_useState, 2),
@@ -587,16 +582,15 @@ function MediasFormProvider(_ref) {
587
582
  var values = React.useMemo(function () {
588
583
  return {
589
584
  media: media,
590
- setMedia: setMedia,
591
- fields: providedFields
585
+ setMedia: setMedia
592
586
  };
593
- }, [media, setMedia, providedFields]);
594
- return /*#__PURE__*/React.createElement(MediasFormContext.Provider, {
587
+ }, [media, setMedia]);
588
+ return /*#__PURE__*/React.createElement(MediaContext.Provider, {
595
589
  value: values
596
590
  }, children);
597
591
  }
598
- MediasFormProvider.propTypes = propTypes$6;
599
- MediasFormProvider.defaultProps = defaultProps$6;
592
+ MediaProvider.propTypes = propTypes$6;
593
+ MediaProvider.defaultProps = defaultProps$6;
600
594
 
601
595
  var defaultColumns = [{
602
596
  id: 'image',
@@ -825,6 +819,8 @@ var propTypes$5 = {
825
819
  onUpload: PropTypes.func,
826
820
  onItemsChange: PropTypes.func,
827
821
  onLayoutChange: PropTypes.func,
822
+ onMediaFormOpen: PropTypes.func,
823
+ onMediaFormClose: PropTypes.func,
828
824
  selectable: PropTypes.bool,
829
825
  selectedItems: PropTypes.arrayOf(PropTypes.shape({})),
830
826
  onSelectionChange: PropTypes.func,
@@ -861,6 +857,8 @@ var defaultProps$5 = {
861
857
  onUpload: null,
862
858
  onItemsChange: null,
863
859
  onLayoutChange: null,
860
+ onMediaFormOpen: null,
861
+ onMediaFormClose: null,
864
862
  selectable: null,
865
863
  selectedItems: null,
866
864
  onSelectionChange: null,
@@ -887,6 +885,8 @@ function MediasBrowser(_ref) {
887
885
  onUpload = _ref.onUpload,
888
886
  onItemsChange = _ref.onItemsChange,
889
887
  onLayoutChange = _ref.onLayoutChange,
888
+ onMediaFormOpen = _ref.onMediaFormOpen,
889
+ onMediaFormClose = _ref.onMediaFormClose,
890
890
  selectable = _ref.selectable,
891
891
  selectedItems = _ref.selectedItems,
892
892
  onSelectionChange = _ref.onSelectionChange,
@@ -987,11 +987,17 @@ function MediasBrowser(_ref) {
987
987
  onLayoutChange(newLayout);
988
988
  }
989
989
  }, [setLayout]);
990
- var _useMediasForm = useMediasForm(),
991
- currentMedia = _useMediasForm.media,
992
- setCurrentMedia = _useMediasForm.setMedia,
993
- _useMediasForm$fields = _useMediasForm.fields,
994
- mediaFormFields = _useMediasForm$fields === void 0 ? null : _useMediasForm$fields;
990
+ var _useMedia = useMedia(),
991
+ currentMedia = _useMedia.media,
992
+ setCurrentMedia = _useMedia.setMedia;
993
+ React.useEffect(function () {
994
+ if (currentMedia !== null && onMediaFormOpen !== null) {
995
+ onMediaFormOpen();
996
+ }
997
+ if (currentMedia === null && onMediaFormClose !== null) {
998
+ onMediaFormClose();
999
+ }
1000
+ }, [currentMedia]);
995
1001
  var onOpenMedia = React.useCallback(function (media) {
996
1002
  setCurrentMedia(media);
997
1003
  }, [setCurrentMedia]);
@@ -1002,18 +1008,22 @@ function MediasBrowser(_ref) {
1002
1008
  setCurrentMedia(null);
1003
1009
  updateItem(item);
1004
1010
  }, [setCurrentMedia, updateItem]);
1005
- var onMediaUploaded = React.useCallback(function (medias) {
1011
+ var onMediaUploaded = React.useCallback(function () {
1012
+ var medias = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1013
+ if (medias === null) return;
1006
1014
  var rawMedias = isArray(medias) ? medias : [medias];
1007
1015
  if (onUpload !== null) {
1008
1016
  onUpload(rawMedias).then(function (newMedias) {
1009
1017
  if (onSelectionChange !== null) {
1010
1018
  onSelectionChange(newMedias);
1019
+ onQueryReset();
1011
1020
  reload();
1012
1021
  }
1013
1022
  });
1014
1023
  }
1015
1024
  if (onSelectionChange !== null) {
1016
1025
  onSelectionChange(rawMedias);
1026
+ onQueryReset();
1017
1027
  reload();
1018
1028
  }
1019
1029
  }, [onUpload]);
@@ -1110,7 +1120,7 @@ function MediasBrowser(_ref) {
1110
1120
  }]
1111
1121
  }))), /*#__PURE__*/React.createElement(MediaForm, {
1112
1122
  value: currentMedia,
1113
- fields: mediaFormFields || fields,
1123
+ fields: fields,
1114
1124
  onChange: setCurrentMedia,
1115
1125
  onSave: onSaveMedia,
1116
1126
  onClose: onCloseMedia,
@@ -1208,64 +1218,43 @@ function MediasBrowser(_ref) {
1208
1218
  MediasBrowser.propTypes = propTypes$5;
1209
1219
  MediasBrowser.defaultProps = defaultProps$5;
1210
1220
 
1211
- var _excluded$4 = ["items", "value", "onSelectionChange", "multipleSelection", "types", "onChange", "onClose", "withoutButtons", "className"];
1221
+ var _excluded$4 = ["items", "value", "onChange", "multiple", "className"];
1212
1222
  var propTypes$4 = {
1213
- // eslint-disable-next-line react/forbid-prop-types
1214
1223
  items: PropTypes.arrayOf(PropTypes.shape({})),
1215
1224
  value: PropTypes.arrayOf(PropTypes.shape({})),
1216
- onSelectionChange: PropTypes.func,
1217
- multipleSelection: PropTypes.bool,
1218
- types: PropTypes.arrayOf(PropTypes.string),
1225
+ multiple: PropTypes.bool,
1219
1226
  onChange: PropTypes.func.isRequired,
1220
- onClose: PropTypes.func,
1221
- withoutButtons: PropTypes.bool,
1222
1227
  className: PropTypes.string
1223
1228
  };
1224
1229
  var defaultProps$4 = {
1225
1230
  items: null,
1226
1231
  value: null,
1227
- onSelectionChange: null,
1228
- multipleSelection: false,
1229
- types: null,
1230
- onClose: null,
1231
- withoutButtons: false,
1232
+ multiple: false,
1232
1233
  className: null
1233
1234
  };
1234
1235
  function MediasPicker(_ref) {
1235
1236
  var initialItems = _ref.items,
1236
1237
  initialSelectedItems = _ref.value,
1237
- parentOnSelectionChange = _ref.onSelectionChange,
1238
- multipleSelection = _ref.multipleSelection,
1239
- types = _ref.types,
1240
1238
  onChange = _ref.onChange,
1241
- onClose = _ref.onClose,
1242
- withoutButtons = _ref.withoutButtons,
1239
+ multiple = _ref.multiple,
1243
1240
  className = _ref.className,
1244
1241
  props = _objectWithoutProperties(_ref, _excluded$4);
1245
- var _useMediasForm = useMediasForm(),
1246
- currentMedia = _useMediasForm.media;
1247
1242
  var _useState = React.useState(initialSelectedItems || null),
1248
1243
  _useState2 = _slicedToArray(_useState, 2),
1249
1244
  selectedItems = _useState2[0],
1250
1245
  setSelectedItems = _useState2[1];
1251
1246
  var onSelectionChange = React.useCallback(function (newSelection) {
1252
1247
  setSelectedItems(newSelection);
1248
+ if (onChange !== null) {
1249
+ onChange(selectedItems);
1250
+ }
1253
1251
  }, [setSelectedItems]);
1252
+
1254
1253
  // Sync from the top
1255
1254
  React.useEffect(function () {
1256
1255
  setSelectedItems(initialSelectedItems);
1257
1256
  }, [initialSelectedItems, setSelectedItems]);
1258
- React.useEffect(function () {
1259
- if (parentOnSelectionChange !== null) {
1260
- parentOnSelectionChange(selectedItems);
1261
- }
1262
- }, [selectedItems, parentOnSelectionChange]);
1263
- var onConfirmSelection = React.useCallback(function () {
1264
- if (onChange !== null) {
1265
- onChange(selectedItems || null);
1266
- }
1267
- }, [selectedItems, onChange]);
1268
- var empty = selectedItems === null || isArray(selectedItems) && selectedItems.length === 0;
1257
+ console.log('selectedItems', selectedItems);
1269
1258
  return /*#__PURE__*/React.createElement("div", {
1270
1259
  className: className
1271
1260
  }, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
@@ -1274,46 +1263,8 @@ function MediasPicker(_ref) {
1274
1263
  selectable: true,
1275
1264
  selectedItems: selectedItems,
1276
1265
  onSelectionChange: onSelectionChange,
1277
- multipleSelection: multipleSelection,
1278
- types: types
1279
- // extraItems={
1280
- // !multiple && initialSelectedItems !== null
1281
- // ? [initialSelectedItems]
1282
- // : initialSelectedItems
1283
- // }
1284
- }, props)), !withoutButtons && currentMedia === null ? /*#__PURE__*/React.createElement("div", {
1285
- className: "d-flex w-100 align-items-end justify-content-end mt-3"
1286
- }, /*#__PURE__*/React.createElement("div", {
1287
- className: "btn-group"
1288
- }, onClose !== null ? /*#__PURE__*/React.createElement(Button, {
1289
- type: "button",
1290
- theme: "secondary",
1291
- onClick: onClose,
1292
- className: "d-block me-2"
1293
- }, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1294
- id: "PyxZY2",
1295
- defaultMessage: [{
1296
- "type": 0,
1297
- "value": "Cancel"
1298
- }]
1299
- })) : null, /*#__PURE__*/React.createElement(Button, {
1300
- type: "button",
1301
- theme: "primary",
1302
- onClick: onConfirmSelection,
1303
- className: "d-block"
1304
- }, empty ? /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1305
- id: "Krgf6j",
1306
- defaultMessage: [{
1307
- "type": 0,
1308
- "value": "Clear selection"
1309
- }]
1310
- }) : /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
1311
- id: "rvOVCV",
1312
- defaultMessage: [{
1313
- "type": 0,
1314
- "value": "Confirm selection"
1315
- }]
1316
- })))) : null);
1266
+ multipleSelection: multiple
1267
+ }, props)));
1317
1268
  }
1318
1269
  MediasPicker.propTypes = propTypes$4;
1319
1270
  MediasPicker.defaultProps = defaultProps$4;
@@ -1340,7 +1291,7 @@ function MediasBrowserContainer(_ref) {
1340
1291
  props = _objectWithoutProperties(_ref, _excluded$3);
1341
1292
  return /*#__PURE__*/React.createElement(MediasApiProvider, {
1342
1293
  api: api
1343
- }, /*#__PURE__*/React.createElement(MediasFormProvider, {
1294
+ }, /*#__PURE__*/React.createElement(MediaProvider, {
1344
1295
  media: media,
1345
1296
  fields: fields
1346
1297
  }, /*#__PURE__*/React.createElement(MediasBrowser, props)));
@@ -1348,33 +1299,27 @@ function MediasBrowserContainer(_ref) {
1348
1299
  MediasBrowserContainer.propTypes = propTypes$3;
1349
1300
  MediasBrowserContainer.defaultProps = defaultProps$3;
1350
1301
 
1351
- var _excluded$2 = ["api", "media", "fields", "onChange"];
1302
+ var _excluded$2 = ["api", "media", "onChange"];
1352
1303
  var propTypes$2 = {
1353
1304
  api: apiPropTypes,
1354
1305
  media: PropTypes.shape({
1355
1306
  id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1356
1307
  }),
1357
- fields: PropTypes.arrayOf(PropTypes.shape({
1358
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1359
- })),
1360
1308
  onChange: PropTypes.func.isRequired
1361
1309
  };
1362
1310
  var defaultProps$2 = {
1363
1311
  api: null,
1364
- media: null,
1365
- fields: null
1312
+ media: null
1366
1313
  };
1367
1314
  function MediasPickerContainer(_ref) {
1368
1315
  var api = _ref.api,
1369
1316
  media = _ref.media,
1370
- fields = _ref.fields,
1371
1317
  onChange = _ref.onChange,
1372
1318
  props = _objectWithoutProperties(_ref, _excluded$2);
1373
1319
  return /*#__PURE__*/React.createElement(MediasApiProvider, {
1374
1320
  api: api
1375
- }, /*#__PURE__*/React.createElement(MediasFormProvider, {
1376
- media: media,
1377
- fields: fields
1321
+ }, /*#__PURE__*/React.createElement(MediaProvider, {
1322
+ media: media
1378
1323
  }, /*#__PURE__*/React.createElement(MediasPicker, Object.assign({}, props, {
1379
1324
  onChange: onChange
1380
1325
  }))));
@@ -1554,7 +1499,7 @@ exports.apiPropTypes = apiPropTypes;
1554
1499
  exports.columns = defaultColumns;
1555
1500
  exports.fields = defaultFields;
1556
1501
  exports.filters = defaultFilters;
1557
- exports.useMedia = useMedia$1;
1502
+ exports.useMedia = useMedia$2;
1558
1503
  exports.useMediaCreate = useMediaCreate$1;
1559
1504
  exports.useMediaDelete = useMediaDelete$1;
1560
1505
  exports.useMediaTrash = useMediaTrash$1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/medias",
3
- "version": "3.0.184",
3
+ "version": "3.0.186",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -58,8 +58,8 @@
58
58
  "@panneau/element-media-card": "^3.0.182",
59
59
  "@panneau/element-media-player": "^3.0.182",
60
60
  "@panneau/element-pagination": "^3.0.182",
61
- "@panneau/element-table": "^3.0.182",
62
- "@panneau/field-upload": "^3.0.182",
61
+ "@panneau/element-table": "^3.0.186",
62
+ "@panneau/field-upload": "^3.0.186",
63
63
  "@panneau/filter-filters": "^3.0.182",
64
64
  "classnames": "^2.5.1",
65
65
  "lodash": "^4.17.21",
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "gitHead": "1d2948618d41595e4c6a40a72f1d9f196cf369ef"
72
+ "gitHead": "28e6bd3e2185ae5ad5f0962f9883d1777d6a25aa"
73
73
  }