@panneau/medias 3.0.185 → 3.0.187

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 +40 -54
  2. package/lib/index.js +40 -54
  3. package/package.json +17 -17
package/es/index.js CHANGED
@@ -815,8 +815,10 @@ var propTypes$5 = {
815
815
  layouts: PropTypes.arrayOf(PropTypes.shape({})),
816
816
  theme: PropTypes.string,
817
817
  onUpload: PropTypes.func,
818
- onItemsChange: PropTypes.func,
818
+ // onItemsChange: PropTypes.func,
819
819
  onLayoutChange: PropTypes.func,
820
+ onMediaFormOpen: PropTypes.func,
821
+ onMediaFormClose: PropTypes.func,
820
822
  selectable: PropTypes.bool,
821
823
  selectedItems: PropTypes.arrayOf(PropTypes.shape({})),
822
824
  onSelectionChange: PropTypes.func,
@@ -851,8 +853,10 @@ var defaultProps$5 = {
851
853
  }],
852
854
  theme: null,
853
855
  onUpload: null,
854
- onItemsChange: null,
856
+ // onItemsChange: null,
855
857
  onLayoutChange: null,
858
+ onMediaFormOpen: null,
859
+ onMediaFormClose: null,
856
860
  selectable: null,
857
861
  selectedItems: null,
858
862
  onSelectionChange: null,
@@ -877,8 +881,9 @@ function MediasBrowser(_ref) {
877
881
  layouts = _ref.layouts,
878
882
  theme = _ref.theme,
879
883
  onUpload = _ref.onUpload,
880
- onItemsChange = _ref.onItemsChange,
881
884
  onLayoutChange = _ref.onLayoutChange,
885
+ onMediaFormOpen = _ref.onMediaFormOpen,
886
+ onMediaFormClose = _ref.onMediaFormClose,
882
887
  selectable = _ref.selectable,
883
888
  selectedItems = _ref.selectedItems,
884
889
  onSelectionChange = _ref.onSelectionChange,
@@ -961,11 +966,12 @@ function MediasBrowser(_ref) {
961
966
  reload = _useMedias.reload;
962
967
 
963
968
  // For picker
964
- useEffect(function () {
965
- if (onItemsChange !== null) {
966
- onItemsChange(items);
967
- }
968
- }, [items, onItemsChange]);
969
+ // useEffect(() => {
970
+ // if (onItemsChange !== null) {
971
+ // onItemsChange(items);
972
+ // }
973
+ // }, [items, onItemsChange]);
974
+
969
975
  var _useState5 = useState(initialLayout || 'table'),
970
976
  _useState6 = _slicedToArray(_useState5, 2),
971
977
  layout = _useState6[0],
@@ -982,6 +988,14 @@ function MediasBrowser(_ref) {
982
988
  var _useMedia = useMedia(),
983
989
  currentMedia = _useMedia.media,
984
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]);
985
999
  var onOpenMedia = useCallback(function (media) {
986
1000
  setCurrentMedia(media);
987
1001
  }, [setCurrentMedia]);
@@ -992,21 +1006,25 @@ function MediasBrowser(_ref) {
992
1006
  setCurrentMedia(null);
993
1007
  updateItem(item);
994
1008
  }, [setCurrentMedia, updateItem]);
995
- 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;
996
1012
  var rawMedias = isArray(medias) ? medias : [medias];
997
1013
  if (onUpload !== null) {
998
1014
  onUpload(rawMedias).then(function (newMedias) {
999
1015
  if (onSelectionChange !== null) {
1000
1016
  onSelectionChange(newMedias);
1017
+ onQueryReset();
1001
1018
  reload();
1002
1019
  }
1003
1020
  });
1004
1021
  }
1005
1022
  if (onSelectionChange !== null) {
1006
1023
  onSelectionChange(rawMedias);
1024
+ onQueryReset();
1007
1025
  reload();
1008
1026
  }
1009
- }, [onUpload]);
1027
+ }, [onUpload, reload, onQueryReset, onSelectionChange]);
1010
1028
  var pagination = /*#__PURE__*/React.createElement(Pagination, {
1011
1029
  page: page,
1012
1030
  lastPage: lastPage,
@@ -1100,7 +1118,7 @@ function MediasBrowser(_ref) {
1100
1118
  }]
1101
1119
  }))), /*#__PURE__*/React.createElement(MediaForm, {
1102
1120
  value: currentMedia,
1103
- fields: mediaFormFields || fields,
1121
+ fields: fields,
1104
1122
  onChange: setCurrentMedia,
1105
1123
  onSave: onSaveMedia,
1106
1124
  onClose: onCloseMedia,
@@ -1198,45 +1216,27 @@ function MediasBrowser(_ref) {
1198
1216
  MediasBrowser.propTypes = propTypes$5;
1199
1217
  MediasBrowser.defaultProps = defaultProps$5;
1200
1218
 
1201
- var _excluded$4 = ["items", "value", "onSelectionChange", "multipleSelection", "types", "onChange", "onClose", "withoutButtons", "className"];
1202
-
1203
- // import { useMediasForm } from './MediasFormContext';
1204
-
1219
+ var _excluded$4 = ["items", "value", "onChange", "multiple", "className"];
1205
1220
  var propTypes$4 = {
1206
- // eslint-disable-next-line react/forbid-prop-types
1207
1221
  items: PropTypes.arrayOf(PropTypes.shape({})),
1208
1222
  value: PropTypes.arrayOf(PropTypes.shape({})),
1209
- onSelectionChange: PropTypes.func,
1210
- multipleSelection: PropTypes.bool,
1211
- types: PropTypes.arrayOf(PropTypes.string),
1223
+ multiple: PropTypes.bool,
1212
1224
  onChange: PropTypes.func.isRequired,
1213
- onClose: PropTypes.func,
1214
- withoutButtons: PropTypes.bool,
1215
1225
  className: PropTypes.string
1216
1226
  };
1217
1227
  var defaultProps$4 = {
1218
1228
  items: null,
1219
1229
  value: null,
1220
- onSelectionChange: null,
1221
- multipleSelection: false,
1222
- types: null,
1223
- onClose: null,
1224
- withoutButtons: false,
1230
+ multiple: false,
1225
1231
  className: null
1226
1232
  };
1227
1233
  function MediasPicker(_ref) {
1228
1234
  var initialItems = _ref.items,
1229
1235
  initialSelectedItems = _ref.value,
1230
- parentOnSelectionChange = _ref.onSelectionChange,
1231
- multipleSelection = _ref.multipleSelection,
1232
- types = _ref.types;
1233
- _ref.onChange;
1234
- _ref.onClose;
1235
- _ref.withoutButtons;
1236
- var className = _ref.className,
1236
+ onChange = _ref.onChange,
1237
+ multiple = _ref.multiple,
1238
+ className = _ref.className,
1237
1239
  props = _objectWithoutProperties(_ref, _excluded$4);
1238
- // const { media: currentMedia } = useMediasForm();
1239
-
1240
1240
  var _useState = useState(initialSelectedItems || null),
1241
1241
  _useState2 = _slicedToArray(_useState, 2),
1242
1242
  selectedItems = _useState2[0],
@@ -1244,24 +1244,16 @@ function MediasPicker(_ref) {
1244
1244
  var onSelectionChange = useCallback(function (newSelection) {
1245
1245
  setSelectedItems(newSelection);
1246
1246
  }, [setSelectedItems]);
1247
+
1247
1248
  // Sync from the top
1248
1249
  useEffect(function () {
1249
1250
  setSelectedItems(initialSelectedItems);
1250
1251
  }, [initialSelectedItems, setSelectedItems]);
1251
1252
  useEffect(function () {
1252
- if (parentOnSelectionChange !== null) {
1253
- parentOnSelectionChange(selectedItems);
1253
+ if (onChange !== null) {
1254
+ onChange(selectedItems);
1254
1255
  }
1255
- }, [selectedItems, parentOnSelectionChange]);
1256
-
1257
- // const onConfirmSelection = useCallback(() => {
1258
- // if (onChange !== null) {
1259
- // onChange(selectedItems || null);
1260
- // }
1261
- // }, [selectedItems, onChange]);
1262
-
1263
- // const empty = selectedItems === null || (isArray(selectedItems) && selectedItems.length === 0);
1264
-
1256
+ }, [selectedItems, onChange]);
1265
1257
  return /*#__PURE__*/React.createElement("div", {
1266
1258
  className: className
1267
1259
  }, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
@@ -1270,13 +1262,7 @@ function MediasPicker(_ref) {
1270
1262
  selectable: true,
1271
1263
  selectedItems: selectedItems,
1272
1264
  onSelectionChange: onSelectionChange,
1273
- multipleSelection: multipleSelection,
1274
- types: types
1275
- // extraItems={
1276
- // !multiple && initialSelectedItems !== null
1277
- // ? [initialSelectedItems]
1278
- // : initialSelectedItems
1279
- // }
1265
+ multipleSelection: multiple
1280
1266
  }, props)));
1281
1267
  }
1282
1268
  MediasPicker.propTypes = propTypes$4;
package/lib/index.js CHANGED
@@ -817,8 +817,10 @@ var propTypes$5 = {
817
817
  layouts: PropTypes.arrayOf(PropTypes.shape({})),
818
818
  theme: PropTypes.string,
819
819
  onUpload: PropTypes.func,
820
- onItemsChange: PropTypes.func,
820
+ // onItemsChange: PropTypes.func,
821
821
  onLayoutChange: PropTypes.func,
822
+ onMediaFormOpen: PropTypes.func,
823
+ onMediaFormClose: PropTypes.func,
822
824
  selectable: PropTypes.bool,
823
825
  selectedItems: PropTypes.arrayOf(PropTypes.shape({})),
824
826
  onSelectionChange: PropTypes.func,
@@ -853,8 +855,10 @@ var defaultProps$5 = {
853
855
  }],
854
856
  theme: null,
855
857
  onUpload: null,
856
- onItemsChange: null,
858
+ // onItemsChange: null,
857
859
  onLayoutChange: null,
860
+ onMediaFormOpen: null,
861
+ onMediaFormClose: null,
858
862
  selectable: null,
859
863
  selectedItems: null,
860
864
  onSelectionChange: null,
@@ -879,8 +883,9 @@ function MediasBrowser(_ref) {
879
883
  layouts = _ref.layouts,
880
884
  theme = _ref.theme,
881
885
  onUpload = _ref.onUpload,
882
- onItemsChange = _ref.onItemsChange,
883
886
  onLayoutChange = _ref.onLayoutChange,
887
+ onMediaFormOpen = _ref.onMediaFormOpen,
888
+ onMediaFormClose = _ref.onMediaFormClose,
884
889
  selectable = _ref.selectable,
885
890
  selectedItems = _ref.selectedItems,
886
891
  onSelectionChange = _ref.onSelectionChange,
@@ -963,11 +968,12 @@ function MediasBrowser(_ref) {
963
968
  reload = _useMedias.reload;
964
969
 
965
970
  // For picker
966
- React.useEffect(function () {
967
- if (onItemsChange !== null) {
968
- onItemsChange(items);
969
- }
970
- }, [items, onItemsChange]);
971
+ // useEffect(() => {
972
+ // if (onItemsChange !== null) {
973
+ // onItemsChange(items);
974
+ // }
975
+ // }, [items, onItemsChange]);
976
+
971
977
  var _useState5 = React.useState(initialLayout || 'table'),
972
978
  _useState6 = _slicedToArray(_useState5, 2),
973
979
  layout = _useState6[0],
@@ -984,6 +990,14 @@ function MediasBrowser(_ref) {
984
990
  var _useMedia = useMedia(),
985
991
  currentMedia = _useMedia.media,
986
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]);
987
1001
  var onOpenMedia = React.useCallback(function (media) {
988
1002
  setCurrentMedia(media);
989
1003
  }, [setCurrentMedia]);
@@ -994,21 +1008,25 @@ function MediasBrowser(_ref) {
994
1008
  setCurrentMedia(null);
995
1009
  updateItem(item);
996
1010
  }, [setCurrentMedia, updateItem]);
997
- 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;
998
1014
  var rawMedias = isArray(medias) ? medias : [medias];
999
1015
  if (onUpload !== null) {
1000
1016
  onUpload(rawMedias).then(function (newMedias) {
1001
1017
  if (onSelectionChange !== null) {
1002
1018
  onSelectionChange(newMedias);
1019
+ onQueryReset();
1003
1020
  reload();
1004
1021
  }
1005
1022
  });
1006
1023
  }
1007
1024
  if (onSelectionChange !== null) {
1008
1025
  onSelectionChange(rawMedias);
1026
+ onQueryReset();
1009
1027
  reload();
1010
1028
  }
1011
- }, [onUpload]);
1029
+ }, [onUpload, reload, onQueryReset, onSelectionChange]);
1012
1030
  var pagination = /*#__PURE__*/React.createElement(Pagination, {
1013
1031
  page: page,
1014
1032
  lastPage: lastPage,
@@ -1102,7 +1120,7 @@ function MediasBrowser(_ref) {
1102
1120
  }]
1103
1121
  }))), /*#__PURE__*/React.createElement(MediaForm, {
1104
1122
  value: currentMedia,
1105
- fields: mediaFormFields || fields,
1123
+ fields: fields,
1106
1124
  onChange: setCurrentMedia,
1107
1125
  onSave: onSaveMedia,
1108
1126
  onClose: onCloseMedia,
@@ -1200,45 +1218,27 @@ function MediasBrowser(_ref) {
1200
1218
  MediasBrowser.propTypes = propTypes$5;
1201
1219
  MediasBrowser.defaultProps = defaultProps$5;
1202
1220
 
1203
- var _excluded$4 = ["items", "value", "onSelectionChange", "multipleSelection", "types", "onChange", "onClose", "withoutButtons", "className"];
1204
-
1205
- // import { useMediasForm } from './MediasFormContext';
1206
-
1221
+ var _excluded$4 = ["items", "value", "onChange", "multiple", "className"];
1207
1222
  var propTypes$4 = {
1208
- // eslint-disable-next-line react/forbid-prop-types
1209
1223
  items: PropTypes.arrayOf(PropTypes.shape({})),
1210
1224
  value: PropTypes.arrayOf(PropTypes.shape({})),
1211
- onSelectionChange: PropTypes.func,
1212
- multipleSelection: PropTypes.bool,
1213
- types: PropTypes.arrayOf(PropTypes.string),
1225
+ multiple: PropTypes.bool,
1214
1226
  onChange: PropTypes.func.isRequired,
1215
- onClose: PropTypes.func,
1216
- withoutButtons: PropTypes.bool,
1217
1227
  className: PropTypes.string
1218
1228
  };
1219
1229
  var defaultProps$4 = {
1220
1230
  items: null,
1221
1231
  value: null,
1222
- onSelectionChange: null,
1223
- multipleSelection: false,
1224
- types: null,
1225
- onClose: null,
1226
- withoutButtons: false,
1232
+ multiple: false,
1227
1233
  className: null
1228
1234
  };
1229
1235
  function MediasPicker(_ref) {
1230
1236
  var initialItems = _ref.items,
1231
1237
  initialSelectedItems = _ref.value,
1232
- parentOnSelectionChange = _ref.onSelectionChange,
1233
- multipleSelection = _ref.multipleSelection,
1234
- types = _ref.types;
1235
- _ref.onChange;
1236
- _ref.onClose;
1237
- _ref.withoutButtons;
1238
- var className = _ref.className,
1238
+ onChange = _ref.onChange,
1239
+ multiple = _ref.multiple,
1240
+ className = _ref.className,
1239
1241
  props = _objectWithoutProperties(_ref, _excluded$4);
1240
- // const { media: currentMedia } = useMediasForm();
1241
-
1242
1242
  var _useState = React.useState(initialSelectedItems || null),
1243
1243
  _useState2 = _slicedToArray(_useState, 2),
1244
1244
  selectedItems = _useState2[0],
@@ -1246,24 +1246,16 @@ function MediasPicker(_ref) {
1246
1246
  var onSelectionChange = React.useCallback(function (newSelection) {
1247
1247
  setSelectedItems(newSelection);
1248
1248
  }, [setSelectedItems]);
1249
+
1249
1250
  // Sync from the top
1250
1251
  React.useEffect(function () {
1251
1252
  setSelectedItems(initialSelectedItems);
1252
1253
  }, [initialSelectedItems, setSelectedItems]);
1253
1254
  React.useEffect(function () {
1254
- if (parentOnSelectionChange !== null) {
1255
- parentOnSelectionChange(selectedItems);
1255
+ if (onChange !== null) {
1256
+ onChange(selectedItems);
1256
1257
  }
1257
- }, [selectedItems, parentOnSelectionChange]);
1258
-
1259
- // const onConfirmSelection = useCallback(() => {
1260
- // if (onChange !== null) {
1261
- // onChange(selectedItems || null);
1262
- // }
1263
- // }, [selectedItems, onChange]);
1264
-
1265
- // const empty = selectedItems === null || (isArray(selectedItems) && selectedItems.length === 0);
1266
-
1258
+ }, [selectedItems, onChange]);
1267
1259
  return /*#__PURE__*/React.createElement("div", {
1268
1260
  className: className
1269
1261
  }, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
@@ -1272,13 +1264,7 @@ function MediasPicker(_ref) {
1272
1264
  selectable: true,
1273
1265
  selectedItems: selectedItems,
1274
1266
  onSelectionChange: onSelectionChange,
1275
- multipleSelection: multipleSelection,
1276
- types: types
1277
- // extraItems={
1278
- // !multiple && initialSelectedItems !== null
1279
- // ? [initialSelectedItems]
1280
- // : initialSelectedItems
1281
- // }
1267
+ multipleSelection: multiple
1282
1268
  }, props)));
1283
1269
  }
1284
1270
  MediasPicker.propTypes = propTypes$4;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/medias",
3
- "version": "3.0.185",
3
+ "version": "3.0.187",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -46,21 +46,21 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "@babel/runtime": "^7.12.5",
49
- "@panneau/core": "^3.0.182",
50
- "@panneau/data": "^3.0.182",
51
- "@panneau/display-image": "^3.0.182",
52
- "@panneau/element-button": "^3.0.182",
53
- "@panneau/element-buttons": "^3.0.182",
54
- "@panneau/element-form": "^3.0.182",
55
- "@panneau/element-form-status": "^3.0.182",
56
- "@panneau/element-grid": "^3.0.182",
57
- "@panneau/element-icon": "^3.0.182",
58
- "@panneau/element-media-card": "^3.0.182",
59
- "@panneau/element-media-player": "^3.0.182",
60
- "@panneau/element-pagination": "^3.0.182",
61
- "@panneau/element-table": "^3.0.182",
62
- "@panneau/field-upload": "^3.0.182",
63
- "@panneau/filter-filters": "^3.0.182",
49
+ "@panneau/core": "^3.0.187",
50
+ "@panneau/data": "^3.0.187",
51
+ "@panneau/display-image": "^3.0.187",
52
+ "@panneau/element-button": "^3.0.187",
53
+ "@panneau/element-buttons": "^3.0.187",
54
+ "@panneau/element-form": "^3.0.187",
55
+ "@panneau/element-form-status": "^3.0.187",
56
+ "@panneau/element-grid": "^3.0.187",
57
+ "@panneau/element-icon": "^3.0.187",
58
+ "@panneau/element-media-card": "^3.0.187",
59
+ "@panneau/element-media-player": "^3.0.187",
60
+ "@panneau/element-pagination": "^3.0.187",
61
+ "@panneau/element-table": "^3.0.187",
62
+ "@panneau/field-upload": "^3.0.187",
63
+ "@panneau/filter-filters": "^3.0.187",
64
64
  "classnames": "^2.5.1",
65
65
  "lodash": "^4.17.21",
66
66
  "prop-types": "^15.7.2",
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "gitHead": "d07cd67a86c77392ecaf3b2502b58ab4fb3e723b"
72
+ "gitHead": "659bc65b0123e1d2d5b9aefa6628d49726100747"
73
73
  }