@panneau/medias 3.0.204 → 3.0.206

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 +64 -65
  2. package/lib/index.js +65 -65
  3. package/package.json +2 -2
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$1 = function useMedia(id, opts) {
103
+ var useMedia = 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$1 = function useMedia(id, opts) {
112
112
  story: data
113
113
  }, request);
114
114
  };
115
- var useMedia$2 = useMedia$1;
115
+ var useMedia$1 = useMedia;
116
116
 
117
117
  var useMediaCreate = function useMediaCreate() {
118
118
  var _useState = useState(false),
@@ -194,9 +194,42 @@ var useMediaTrash = function useMediaTrash() {
194
194
  };
195
195
  var useMediaTrash$1 = useMediaTrash;
196
196
 
197
+ var MediaContext = /*#__PURE__*/React.createContext(null);
198
+ var useCurrentMedia = function useCurrentMedia() {
199
+ return useContext(MediaContext);
200
+ };
201
+ var propTypes$8 = {
202
+ media: PropTypes.shape({
203
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
204
+ }),
205
+ children: PropTypes.node.isRequired
206
+ };
207
+ var defaultProps$8 = {
208
+ media: null
209
+ };
210
+ function MediaProvider(_ref) {
211
+ var providedMedia = _ref.media,
212
+ children = _ref.children;
213
+ var _useState = useState(providedMedia),
214
+ _useState2 = _slicedToArray(_useState, 2),
215
+ currentMedia = _useState2[0],
216
+ setCurrentMedia = _useState2[1];
217
+ var values = useMemo(function () {
218
+ return {
219
+ currentMedia: currentMedia,
220
+ setCurrentMedia: setCurrentMedia
221
+ };
222
+ }, [currentMedia, setCurrentMedia]);
223
+ return /*#__PURE__*/React.createElement(MediaContext.Provider, {
224
+ value: values
225
+ }, children);
226
+ }
227
+ MediaProvider.propTypes = propTypes$8;
228
+ MediaProvider.defaultProps = defaultProps$8;
229
+
197
230
  var styles = {"mediaFrame":"panneau-medias-mediaFrame","playButton":"panneau-medias-playButton"};
198
231
 
199
- var propTypes$8 = {
232
+ var propTypes$7 = {
200
233
  value: PropTypes.shape({
201
234
  id: PropTypes.string,
202
235
  type: PropTypes.string
@@ -204,7 +237,7 @@ var propTypes$8 = {
204
237
  showPlayer: PropTypes.bool,
205
238
  className: PropTypes.string
206
239
  };
207
- var defaultProps$8 = {
240
+ var defaultProps$7 = {
208
241
  value: null,
209
242
  showPlayer: true,
210
243
  className: null
@@ -237,8 +270,8 @@ function MediaFrame(_ref) {
237
270
  onClick: type === 'video' || type === 'audio' ? onClick : null
238
271
  }));
239
272
  }
240
- MediaFrame.propTypes = propTypes$8;
241
- MediaFrame.defaultProps = defaultProps$8;
273
+ MediaFrame.propTypes = propTypes$7;
274
+ MediaFrame.defaultProps = defaultProps$7;
242
275
 
243
276
  var defaultFields = [{
244
277
  name: 'name',
@@ -373,7 +406,7 @@ var defaultFields = [{
373
406
  }]
374
407
  }];
375
408
 
376
- var propTypes$7 = {
409
+ var propTypes$6 = {
377
410
  value: PropTypes.shape({
378
411
  id: PropTypes.string
379
412
  }),
@@ -388,7 +421,7 @@ var propTypes$7 = {
388
421
  className: PropTypes.string,
389
422
  children: PropTypes.node
390
423
  };
391
- var defaultProps$7 = {
424
+ var defaultProps$6 = {
392
425
  value: null,
393
426
  fields: defaultFields,
394
427
  onChange: null,
@@ -558,41 +591,8 @@ function MediaForm(_ref) {
558
591
  status: status
559
592
  })) : null)));
560
593
  }
561
- MediaForm.propTypes = propTypes$7;
562
- MediaForm.defaultProps = defaultProps$7;
563
-
564
- var MediaContext = /*#__PURE__*/React.createContext(null);
565
- var useMedia = function useMedia() {
566
- return useContext(MediaContext);
567
- };
568
- var propTypes$6 = {
569
- media: PropTypes.shape({
570
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
571
- }),
572
- children: PropTypes.node.isRequired
573
- };
574
- var defaultProps$6 = {
575
- media: null
576
- };
577
- function MediaProvider(_ref) {
578
- var providedMedia = _ref.media,
579
- children = _ref.children;
580
- var _useState = useState(providedMedia),
581
- _useState2 = _slicedToArray(_useState, 2),
582
- media = _useState2[0],
583
- setMedia = _useState2[1];
584
- var values = useMemo(function () {
585
- return {
586
- media: media,
587
- setMedia: setMedia
588
- };
589
- }, [media, setMedia]);
590
- return /*#__PURE__*/React.createElement(MediaContext.Provider, {
591
- value: values
592
- }, children);
593
- }
594
- MediaProvider.propTypes = propTypes$6;
595
- MediaProvider.defaultProps = defaultProps$6;
594
+ MediaForm.propTypes = propTypes$6;
595
+ MediaForm.defaultProps = defaultProps$6;
596
596
 
597
597
  var defaultColumns = [{
598
598
  id: 'image',
@@ -989,9 +989,9 @@ function MediasBrowser(_ref) {
989
989
  onLayoutChange(newLayout);
990
990
  }
991
991
  }, [setLayout]);
992
- var _useMedia = useMedia(),
993
- currentMedia = _useMedia.media,
994
- setCurrentMedia = _useMedia.setMedia;
992
+ var _useCurrentMedia = useCurrentMedia(),
993
+ currentMedia = _useCurrentMedia.currentMedia,
994
+ setCurrentMedia = _useCurrentMedia.setCurrentMedia;
995
995
  useEffect(function () {
996
996
  if (currentMedia !== null && onMediaFormOpen !== null) {
997
997
  onMediaFormOpen();
@@ -1126,13 +1126,13 @@ function MediasBrowser(_ref) {
1126
1126
  }) : columns;
1127
1127
  }, [columns, withTrash, showTrashed]);
1128
1128
  var finalItems = useMemo(function () {
1129
- if (withStickySelection && (extraItems !== null || selectedItems !== null || uploadedMedias !== null || uploadProcessing === true)) {
1129
+ if (withStickySelection && (extraItems !== null || uploadedMedias !== null || uploadProcessing === true)) {
1130
1130
  return uniqBy([].concat(_toConsumableArray(uploadProcessing ? [{
1131
1131
  id: '-',
1132
1132
  loading: true,
1133
1133
  actionsDisabled: true,
1134
1134
  selectionDisabled: true
1135
- }] : []), _toConsumableArray(page === 1 ? uploadedMedias || [] : []), _toConsumableArray(page === 1 ? (selectedItems || []).map(function (item) {
1135
+ }] : []), _toConsumableArray(page === 1 ? uploadedMedias || [] : []), _toConsumableArray(page === 1 ? (extraItems || []).map(function (item) {
1136
1136
  var _item$id = item.id,
1137
1137
  itemId = _item$id === void 0 ? null : _item$id;
1138
1138
  return (allItems || []).find(function () {
@@ -1143,18 +1143,7 @@ function MediasBrowser(_ref) {
1143
1143
  }) || item || null;
1144
1144
  }).filter(function (it) {
1145
1145
  return it !== null;
1146
- }) || [] : []), _toConsumableArray((extraItems || []).map(function (item) {
1147
- var _item$id2 = item.id,
1148
- itemId = _item$id2 === void 0 ? null : _item$id2;
1149
- return (allItems || []).find(function () {
1150
- var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1151
- _ref10$id = _ref10.id,
1152
- otherId = _ref10$id === void 0 ? null : _ref10$id;
1153
- return otherId === itemId;
1154
- }) || item || null;
1155
- }).filter(function (it) {
1156
- return it !== null;
1157
- })), _toConsumableArray(items || [])), function (it) {
1146
+ }) || [] : []), _toConsumableArray(items || [])), function (it) {
1158
1147
  return it === null || it === void 0 ? void 0 : it.id;
1159
1148
  });
1160
1149
  }
@@ -1253,9 +1242,9 @@ function MediasBrowser(_ref) {
1253
1242
  loaded: loaded,
1254
1243
  actionsProps: {
1255
1244
  getDeletePropsFromItem: function getDeletePropsFromItem() {
1256
- var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1257
- _ref11$id = _ref11.id,
1258
- id = _ref11$id === void 0 ? null : _ref11$id;
1245
+ var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1246
+ _ref10$id = _ref10.id,
1247
+ id = _ref10$id === void 0 ? null : _ref10$id;
1259
1248
  return {
1260
1249
  href: null,
1261
1250
  onClick: function onClick() {
@@ -1302,6 +1291,15 @@ function MediasPicker(_ref) {
1302
1291
  multiple = _ref.multiple,
1303
1292
  className = _ref.className,
1304
1293
  props = _objectWithoutProperties(_ref, _excluded$4);
1294
+ // Keep the previous selection on top of first page
1295
+ var extraItems = useMemo(function () {
1296
+ if (initialSelectedItems === null) {
1297
+ return null;
1298
+ }
1299
+ return isArray(initialSelectedItems) ? initialSelectedItems : [initialSelectedItems];
1300
+ }, []);
1301
+
1302
+ // Mostly for testing
1305
1303
  var _useState = useState(initialSelectedItems || null),
1306
1304
  _useState2 = _slicedToArray(_useState, 2),
1307
1305
  selectedItems = _useState2[0],
@@ -1327,7 +1325,8 @@ function MediasPicker(_ref) {
1327
1325
  selectable: true,
1328
1326
  selectedItems: selectedItems,
1329
1327
  onSelectionChange: onSelectionChange,
1330
- multipleSelection: multiple
1328
+ multipleSelection: multiple,
1329
+ extraItems: extraItems
1331
1330
  }, props)));
1332
1331
  }
1333
1332
  MediasPicker.propTypes = propTypes$4;
@@ -1545,4 +1544,4 @@ function MediasResourcePicker(_ref) {
1545
1544
  MediasResourcePicker.propTypes = propTypes;
1546
1545
  MediasResourcePicker.defaultProps = defaultProps;
1547
1546
 
1548
- 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 };
1547
+ export { MediaForm, MediasApiProvider, MediasBrowser, MediasBrowserContainer, MediasPicker, MediasPickerContainer, MediasResourceBrowser, MediasResourcePicker, apiPropTypes, defaultColumns as columns, defaultFields as fields, defaultFilters as filters, useCurrentMedia, 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 };
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$1 = function useMedia(id, opts) {
105
+ var useMedia = 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$1 = function useMedia(id, opts) {
114
114
  story: data$1
115
115
  }, request);
116
116
  };
117
- var useMedia$2 = useMedia$1;
117
+ var useMedia$1 = useMedia;
118
118
 
119
119
  var useMediaCreate = function useMediaCreate() {
120
120
  var _useState = React.useState(false),
@@ -196,9 +196,42 @@ var useMediaTrash = function useMediaTrash() {
196
196
  };
197
197
  var useMediaTrash$1 = useMediaTrash;
198
198
 
199
+ var MediaContext = /*#__PURE__*/React.createContext(null);
200
+ var useCurrentMedia = function useCurrentMedia() {
201
+ return React.useContext(MediaContext);
202
+ };
203
+ var propTypes$8 = {
204
+ media: PropTypes.shape({
205
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
206
+ }),
207
+ children: PropTypes.node.isRequired
208
+ };
209
+ var defaultProps$8 = {
210
+ media: null
211
+ };
212
+ function MediaProvider(_ref) {
213
+ var providedMedia = _ref.media,
214
+ children = _ref.children;
215
+ var _useState = React.useState(providedMedia),
216
+ _useState2 = _slicedToArray(_useState, 2),
217
+ currentMedia = _useState2[0],
218
+ setCurrentMedia = _useState2[1];
219
+ var values = React.useMemo(function () {
220
+ return {
221
+ currentMedia: currentMedia,
222
+ setCurrentMedia: setCurrentMedia
223
+ };
224
+ }, [currentMedia, setCurrentMedia]);
225
+ return /*#__PURE__*/React.createElement(MediaContext.Provider, {
226
+ value: values
227
+ }, children);
228
+ }
229
+ MediaProvider.propTypes = propTypes$8;
230
+ MediaProvider.defaultProps = defaultProps$8;
231
+
199
232
  var styles = {"mediaFrame":"panneau-medias-mediaFrame","playButton":"panneau-medias-playButton"};
200
233
 
201
- var propTypes$8 = {
234
+ var propTypes$7 = {
202
235
  value: PropTypes.shape({
203
236
  id: PropTypes.string,
204
237
  type: PropTypes.string
@@ -206,7 +239,7 @@ var propTypes$8 = {
206
239
  showPlayer: PropTypes.bool,
207
240
  className: PropTypes.string
208
241
  };
209
- var defaultProps$8 = {
242
+ var defaultProps$7 = {
210
243
  value: null,
211
244
  showPlayer: true,
212
245
  className: null
@@ -239,8 +272,8 @@ function MediaFrame(_ref) {
239
272
  onClick: type === 'video' || type === 'audio' ? onClick : null
240
273
  }));
241
274
  }
242
- MediaFrame.propTypes = propTypes$8;
243
- MediaFrame.defaultProps = defaultProps$8;
275
+ MediaFrame.propTypes = propTypes$7;
276
+ MediaFrame.defaultProps = defaultProps$7;
244
277
 
245
278
  var defaultFields = [{
246
279
  name: 'name',
@@ -375,7 +408,7 @@ var defaultFields = [{
375
408
  }]
376
409
  }];
377
410
 
378
- var propTypes$7 = {
411
+ var propTypes$6 = {
379
412
  value: PropTypes.shape({
380
413
  id: PropTypes.string
381
414
  }),
@@ -390,7 +423,7 @@ var propTypes$7 = {
390
423
  className: PropTypes.string,
391
424
  children: PropTypes.node
392
425
  };
393
- var defaultProps$7 = {
426
+ var defaultProps$6 = {
394
427
  value: null,
395
428
  fields: defaultFields,
396
429
  onChange: null,
@@ -560,41 +593,8 @@ function MediaForm(_ref) {
560
593
  status: status
561
594
  })) : null)));
562
595
  }
563
- MediaForm.propTypes = propTypes$7;
564
- MediaForm.defaultProps = defaultProps$7;
565
-
566
- var MediaContext = /*#__PURE__*/React.createContext(null);
567
- var useMedia = function useMedia() {
568
- return React.useContext(MediaContext);
569
- };
570
- var propTypes$6 = {
571
- media: PropTypes.shape({
572
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
573
- }),
574
- children: PropTypes.node.isRequired
575
- };
576
- var defaultProps$6 = {
577
- media: null
578
- };
579
- function MediaProvider(_ref) {
580
- var providedMedia = _ref.media,
581
- children = _ref.children;
582
- var _useState = React.useState(providedMedia),
583
- _useState2 = _slicedToArray(_useState, 2),
584
- media = _useState2[0],
585
- setMedia = _useState2[1];
586
- var values = React.useMemo(function () {
587
- return {
588
- media: media,
589
- setMedia: setMedia
590
- };
591
- }, [media, setMedia]);
592
- return /*#__PURE__*/React.createElement(MediaContext.Provider, {
593
- value: values
594
- }, children);
595
- }
596
- MediaProvider.propTypes = propTypes$6;
597
- MediaProvider.defaultProps = defaultProps$6;
596
+ MediaForm.propTypes = propTypes$6;
597
+ MediaForm.defaultProps = defaultProps$6;
598
598
 
599
599
  var defaultColumns = [{
600
600
  id: 'image',
@@ -991,9 +991,9 @@ function MediasBrowser(_ref) {
991
991
  onLayoutChange(newLayout);
992
992
  }
993
993
  }, [setLayout]);
994
- var _useMedia = useMedia(),
995
- currentMedia = _useMedia.media,
996
- setCurrentMedia = _useMedia.setMedia;
994
+ var _useCurrentMedia = useCurrentMedia(),
995
+ currentMedia = _useCurrentMedia.currentMedia,
996
+ setCurrentMedia = _useCurrentMedia.setCurrentMedia;
997
997
  React.useEffect(function () {
998
998
  if (currentMedia !== null && onMediaFormOpen !== null) {
999
999
  onMediaFormOpen();
@@ -1128,13 +1128,13 @@ function MediasBrowser(_ref) {
1128
1128
  }) : columns;
1129
1129
  }, [columns, withTrash, showTrashed]);
1130
1130
  var finalItems = React.useMemo(function () {
1131
- if (withStickySelection && (extraItems !== null || selectedItems !== null || uploadedMedias !== null || uploadProcessing === true)) {
1131
+ if (withStickySelection && (extraItems !== null || uploadedMedias !== null || uploadProcessing === true)) {
1132
1132
  return uniqBy([].concat(_toConsumableArray(uploadProcessing ? [{
1133
1133
  id: '-',
1134
1134
  loading: true,
1135
1135
  actionsDisabled: true,
1136
1136
  selectionDisabled: true
1137
- }] : []), _toConsumableArray(page === 1 ? uploadedMedias || [] : []), _toConsumableArray(page === 1 ? (selectedItems || []).map(function (item) {
1137
+ }] : []), _toConsumableArray(page === 1 ? uploadedMedias || [] : []), _toConsumableArray(page === 1 ? (extraItems || []).map(function (item) {
1138
1138
  var _item$id = item.id,
1139
1139
  itemId = _item$id === void 0 ? null : _item$id;
1140
1140
  return (allItems || []).find(function () {
@@ -1145,18 +1145,7 @@ function MediasBrowser(_ref) {
1145
1145
  }) || item || null;
1146
1146
  }).filter(function (it) {
1147
1147
  return it !== null;
1148
- }) || [] : []), _toConsumableArray((extraItems || []).map(function (item) {
1149
- var _item$id2 = item.id,
1150
- itemId = _item$id2 === void 0 ? null : _item$id2;
1151
- return (allItems || []).find(function () {
1152
- var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1153
- _ref10$id = _ref10.id,
1154
- otherId = _ref10$id === void 0 ? null : _ref10$id;
1155
- return otherId === itemId;
1156
- }) || item || null;
1157
- }).filter(function (it) {
1158
- return it !== null;
1159
- })), _toConsumableArray(items || [])), function (it) {
1148
+ }) || [] : []), _toConsumableArray(items || [])), function (it) {
1160
1149
  return it === null || it === void 0 ? void 0 : it.id;
1161
1150
  });
1162
1151
  }
@@ -1255,9 +1244,9 @@ function MediasBrowser(_ref) {
1255
1244
  loaded: loaded,
1256
1245
  actionsProps: {
1257
1246
  getDeletePropsFromItem: function getDeletePropsFromItem() {
1258
- var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1259
- _ref11$id = _ref11.id,
1260
- id = _ref11$id === void 0 ? null : _ref11$id;
1247
+ var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1248
+ _ref10$id = _ref10.id,
1249
+ id = _ref10$id === void 0 ? null : _ref10$id;
1261
1250
  return {
1262
1251
  href: null,
1263
1252
  onClick: function onClick() {
@@ -1304,6 +1293,15 @@ function MediasPicker(_ref) {
1304
1293
  multiple = _ref.multiple,
1305
1294
  className = _ref.className,
1306
1295
  props = _objectWithoutProperties(_ref, _excluded$4);
1296
+ // Keep the previous selection on top of first page
1297
+ var extraItems = React.useMemo(function () {
1298
+ if (initialSelectedItems === null) {
1299
+ return null;
1300
+ }
1301
+ return isArray(initialSelectedItems) ? initialSelectedItems : [initialSelectedItems];
1302
+ }, []);
1303
+
1304
+ // Mostly for testing
1307
1305
  var _useState = React.useState(initialSelectedItems || null),
1308
1306
  _useState2 = _slicedToArray(_useState, 2),
1309
1307
  selectedItems = _useState2[0],
@@ -1329,7 +1327,8 @@ function MediasPicker(_ref) {
1329
1327
  selectable: true,
1330
1328
  selectedItems: selectedItems,
1331
1329
  onSelectionChange: onSelectionChange,
1332
- multipleSelection: multiple
1330
+ multipleSelection: multiple,
1331
+ extraItems: extraItems
1333
1332
  }, props)));
1334
1333
  }
1335
1334
  MediasPicker.propTypes = propTypes$4;
@@ -1559,7 +1558,8 @@ exports.apiPropTypes = apiPropTypes;
1559
1558
  exports.columns = defaultColumns;
1560
1559
  exports.fields = defaultFields;
1561
1560
  exports.filters = defaultFilters;
1562
- exports.useMedia = useMedia$2;
1561
+ exports.useCurrentMedia = useCurrentMedia;
1562
+ exports.useMedia = useMedia$1;
1563
1563
  exports.useMediaCreate = useMediaCreate$1;
1564
1564
  exports.useMediaDelete = useMediaDelete$1;
1565
1565
  exports.useMediaTrash = useMediaTrash$1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/medias",
3
- "version": "3.0.204",
3
+ "version": "3.0.206",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "gitHead": "d9693b3e1d6112feb97a0752590c2715024b6789"
72
+ "gitHead": "793739a25b15e6120a108e4dcfa66a160f18a3b7"
73
73
  }