@panneau/medias 3.0.187 → 3.0.190

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 +66 -44
  2. package/lib/index.js +66 -44
  3. package/package.json +17 -17
package/es/index.js CHANGED
@@ -814,8 +814,8 @@ var propTypes$5 = {
814
814
  layout: PropTypes.string,
815
815
  layouts: PropTypes.arrayOf(PropTypes.shape({})),
816
816
  theme: PropTypes.string,
817
- onUpload: PropTypes.func,
818
- // onItemsChange: PropTypes.func,
817
+ onMediaUploaded: PropTypes.func,
818
+ onItemsChange: PropTypes.func,
819
819
  onLayoutChange: PropTypes.func,
820
820
  onMediaFormOpen: PropTypes.func,
821
821
  onMediaFormClose: PropTypes.func,
@@ -852,12 +852,12 @@ var defaultProps$5 = {
852
852
  })
853
853
  }],
854
854
  theme: null,
855
- onUpload: null,
856
- // onItemsChange: null,
855
+ onMediaUploaded: null,
856
+ onItemsChange: null,
857
857
  onLayoutChange: null,
858
858
  onMediaFormOpen: null,
859
859
  onMediaFormClose: null,
860
- selectable: null,
860
+ selectable: false,
861
861
  selectedItems: null,
862
862
  onSelectionChange: null,
863
863
  multipleSelection: false,
@@ -880,7 +880,8 @@ function MediasBrowser(_ref) {
880
880
  initialLayout = _ref.layout,
881
881
  layouts = _ref.layouts,
882
882
  theme = _ref.theme,
883
- onUpload = _ref.onUpload,
883
+ onMediaUploaded = _ref.onMediaUploaded,
884
+ onItemsChange = _ref.onItemsChange,
884
885
  onLayoutChange = _ref.onLayoutChange,
885
886
  onMediaFormOpen = _ref.onMediaFormOpen,
886
887
  onMediaFormClose = _ref.onMediaFormClose,
@@ -964,14 +965,11 @@ function MediasBrowser(_ref) {
964
965
  _useMedias$pages = _useMedias.pages,
965
966
  pages = _useMedias$pages === void 0 ? null : _useMedias$pages,
966
967
  reload = _useMedias.reload;
967
-
968
- // For picker
969
- // useEffect(() => {
970
- // if (onItemsChange !== null) {
971
- // onItemsChange(items);
972
- // }
973
- // }, [items, onItemsChange]);
974
-
968
+ useEffect(function () {
969
+ if (onItemsChange !== null) {
970
+ onItemsChange(items);
971
+ }
972
+ }, [items, onItemsChange]);
975
973
  var _useState5 = useState(initialLayout || 'table'),
976
974
  _useState6 = _slicedToArray(_useState5, 2),
977
975
  layout = _useState6[0],
@@ -1006,25 +1004,39 @@ function MediasBrowser(_ref) {
1006
1004
  setCurrentMedia(null);
1007
1005
  updateItem(item);
1008
1006
  }, [setCurrentMedia, updateItem]);
1009
- var onMediaUploaded = useCallback(function () {
1007
+ var _useState7 = useState(null),
1008
+ _useState8 = _slicedToArray(_useState7, 2),
1009
+ uploadedMedias = _useState8[0],
1010
+ setUploadedMedias = _useState8[1];
1011
+ var onUploadComplete = useCallback(function () {
1010
1012
  var medias = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1011
1013
  if (medias === null) return;
1012
- var rawMedias = isArray(medias) ? medias : [medias];
1013
- if (onUpload !== null) {
1014
- onUpload(rawMedias).then(function (newMedias) {
1014
+ var rawMedias = (isArray(medias) ? medias : [medias]).filter(function (it) {
1015
+ return it !== null;
1016
+ });
1017
+ if (onMediaUploaded !== null) {
1018
+ console.log('rawMedias', rawMedias);
1019
+ onMediaUploaded(rawMedias).then(function (newMedias) {
1020
+ var uploadedNewMedias = (isArray(newMedias) ? [].concat(_toConsumableArray(uploadedMedias || []), _toConsumableArray(newMedias)) : [].concat(_toConsumableArray(uploadedMedias || []), [newMedias])).filter(function (it) {
1021
+ return it !== null;
1022
+ });
1023
+ setUploadedMedias(uploadedNewMedias);
1024
+ console.log('uploaded', uploadedNewMedias, onSelectionChange);
1015
1025
  if (onSelectionChange !== null) {
1016
1026
  onSelectionChange(newMedias);
1017
- onQueryReset();
1027
+ onQueryReset(); // think about this
1018
1028
  reload();
1019
1029
  }
1020
1030
  });
1031
+ } else {
1032
+ setUploadedMedias(rawMedias);
1033
+ if (onSelectionChange !== null) {
1034
+ onSelectionChange(rawMedias);
1035
+ onQueryReset();
1036
+ reload();
1037
+ }
1021
1038
  }
1022
- if (onSelectionChange !== null) {
1023
- onSelectionChange(rawMedias);
1024
- onQueryReset();
1025
- reload();
1026
- }
1027
- }, [onUpload, reload, onQueryReset, onSelectionChange]);
1039
+ }, [onMediaUploaded, reload, onQueryReset, onSelectionChange, uploadedMedias, setUploadedMedias]);
1028
1040
  var pagination = /*#__PURE__*/React.createElement(Pagination, {
1029
1041
  page: page,
1030
1042
  lastPage: lastPage,
@@ -1080,18 +1092,33 @@ function MediasBrowser(_ref) {
1080
1092
  })
1081
1093
  });
1082
1094
  }
1095
+ if (columnId === 'actions') {
1096
+ // console.log('column', column);
1097
+ var _ref6 = column || {},
1098
+ _ref6$actions = _ref6.actions,
1099
+ actions = _ref6$actions === void 0 ? [] : _ref6$actions;
1100
+ return _objectSpread(_objectSpread({}, column), {}, {
1101
+ actions: (actions || []).reduce(function (acc, action) {
1102
+ if (action === 'delete') {
1103
+ acc.push('restore');
1104
+ }
1105
+ acc.push(action);
1106
+ return acc;
1107
+ }, [])
1108
+ });
1109
+ }
1083
1110
  return column;
1084
1111
  }) : columns;
1085
1112
  }, [columns, withTrash, showTrashed]);
1086
1113
  var finalItems = useMemo(function () {
1087
1114
  if (withStickySelection && extraItems !== null) {
1088
- return uniqBy([].concat(_toConsumableArray((extraItems || []).map(function (item) {
1115
+ return uniqBy([].concat(_toConsumableArray(page === 1 ? uploadedMedias || [] : []), _toConsumableArray((extraItems || []).map(function (item) {
1089
1116
  var _item$id = item.id,
1090
1117
  itemId = _item$id === void 0 ? null : _item$id;
1091
1118
  return (allItems || []).find(function () {
1092
- var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1093
- _ref6$id = _ref6.id,
1094
- otherId = _ref6$id === void 0 ? null : _ref6$id;
1119
+ var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1120
+ _ref7$id = _ref7.id,
1121
+ otherId = _ref7$id === void 0 ? null : _ref7$id;
1095
1122
  return otherId === itemId;
1096
1123
  }) || item || null;
1097
1124
  }).filter(function (it) {
@@ -1137,7 +1164,7 @@ function MediasBrowser(_ref) {
1137
1164
  withButton: true,
1138
1165
  withoutMedia: true,
1139
1166
  uppyConfig: uppyConfig,
1140
- onChange: onMediaUploaded
1167
+ onChange: onUploadComplete
1141
1168
  }) : null), /*#__PURE__*/React.createElement("div", {
1142
1169
  className: classNames(['d-flex', 'mt-1', 'mb-3', {
1143
1170
  'justify-content-between': hasLayouts,
@@ -1188,9 +1215,9 @@ function MediasBrowser(_ref) {
1188
1215
  loading: loading,
1189
1216
  actionsProps: {
1190
1217
  getDeletePropsFromItem: function getDeletePropsFromItem() {
1191
- var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1192
- _ref7$id = _ref7.id,
1193
- id = _ref7$id === void 0 ? null : _ref7$id;
1218
+ var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1219
+ _ref8$id = _ref8.id,
1220
+ id = _ref8$id === void 0 ? null : _ref8$id;
1194
1221
  return {
1195
1222
  href: null,
1196
1223
  onClick: function onClick() {
@@ -1268,31 +1295,25 @@ function MediasPicker(_ref) {
1268
1295
  MediasPicker.propTypes = propTypes$4;
1269
1296
  MediasPicker.defaultProps = defaultProps$4;
1270
1297
 
1271
- var _excluded$3 = ["api", "media", "fields"];
1298
+ var _excluded$3 = ["api", "media"];
1272
1299
  var propTypes$3 = {
1273
1300
  api: apiPropTypes,
1274
1301
  media: PropTypes.shape({
1275
1302
  id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1276
- }),
1277
- fields: PropTypes.arrayOf(PropTypes.shape({
1278
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1279
- }))
1303
+ })
1280
1304
  };
1281
1305
  var defaultProps$3 = {
1282
1306
  api: null,
1283
- media: null,
1284
- fields: null
1307
+ media: null
1285
1308
  };
1286
1309
  function MediasBrowserContainer(_ref) {
1287
1310
  var api = _ref.api,
1288
1311
  media = _ref.media,
1289
- fields = _ref.fields,
1290
1312
  props = _objectWithoutProperties(_ref, _excluded$3);
1291
1313
  return /*#__PURE__*/React.createElement(MediasApiProvider, {
1292
1314
  api: api
1293
1315
  }, /*#__PURE__*/React.createElement(MediaProvider, {
1294
- media: media,
1295
- fields: fields
1316
+ media: media
1296
1317
  }, /*#__PURE__*/React.createElement(MediasBrowser, props)));
1297
1318
  }
1298
1319
  MediasBrowserContainer.propTypes = propTypes$3;
@@ -1308,7 +1329,8 @@ var propTypes$2 = {
1308
1329
  };
1309
1330
  var defaultProps$2 = {
1310
1331
  api: null,
1311
- media: null
1332
+ media: null,
1333
+ onChange: null
1312
1334
  };
1313
1335
  function MediasPickerContainer(_ref) {
1314
1336
  var api = _ref.api,
package/lib/index.js CHANGED
@@ -816,8 +816,8 @@ var propTypes$5 = {
816
816
  layout: PropTypes.string,
817
817
  layouts: PropTypes.arrayOf(PropTypes.shape({})),
818
818
  theme: PropTypes.string,
819
- onUpload: PropTypes.func,
820
- // onItemsChange: PropTypes.func,
819
+ onMediaUploaded: PropTypes.func,
820
+ onItemsChange: PropTypes.func,
821
821
  onLayoutChange: PropTypes.func,
822
822
  onMediaFormOpen: PropTypes.func,
823
823
  onMediaFormClose: PropTypes.func,
@@ -854,12 +854,12 @@ var defaultProps$5 = {
854
854
  })
855
855
  }],
856
856
  theme: null,
857
- onUpload: null,
858
- // onItemsChange: null,
857
+ onMediaUploaded: null,
858
+ onItemsChange: null,
859
859
  onLayoutChange: null,
860
860
  onMediaFormOpen: null,
861
861
  onMediaFormClose: null,
862
- selectable: null,
862
+ selectable: false,
863
863
  selectedItems: null,
864
864
  onSelectionChange: null,
865
865
  multipleSelection: false,
@@ -882,7 +882,8 @@ function MediasBrowser(_ref) {
882
882
  initialLayout = _ref.layout,
883
883
  layouts = _ref.layouts,
884
884
  theme = _ref.theme,
885
- onUpload = _ref.onUpload,
885
+ onMediaUploaded = _ref.onMediaUploaded,
886
+ onItemsChange = _ref.onItemsChange,
886
887
  onLayoutChange = _ref.onLayoutChange,
887
888
  onMediaFormOpen = _ref.onMediaFormOpen,
888
889
  onMediaFormClose = _ref.onMediaFormClose,
@@ -966,14 +967,11 @@ function MediasBrowser(_ref) {
966
967
  _useMedias$pages = _useMedias.pages,
967
968
  pages = _useMedias$pages === void 0 ? null : _useMedias$pages,
968
969
  reload = _useMedias.reload;
969
-
970
- // For picker
971
- // useEffect(() => {
972
- // if (onItemsChange !== null) {
973
- // onItemsChange(items);
974
- // }
975
- // }, [items, onItemsChange]);
976
-
970
+ React.useEffect(function () {
971
+ if (onItemsChange !== null) {
972
+ onItemsChange(items);
973
+ }
974
+ }, [items, onItemsChange]);
977
975
  var _useState5 = React.useState(initialLayout || 'table'),
978
976
  _useState6 = _slicedToArray(_useState5, 2),
979
977
  layout = _useState6[0],
@@ -1008,25 +1006,39 @@ function MediasBrowser(_ref) {
1008
1006
  setCurrentMedia(null);
1009
1007
  updateItem(item);
1010
1008
  }, [setCurrentMedia, updateItem]);
1011
- var onMediaUploaded = React.useCallback(function () {
1009
+ var _useState7 = React.useState(null),
1010
+ _useState8 = _slicedToArray(_useState7, 2),
1011
+ uploadedMedias = _useState8[0],
1012
+ setUploadedMedias = _useState8[1];
1013
+ var onUploadComplete = React.useCallback(function () {
1012
1014
  var medias = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1013
1015
  if (medias === null) return;
1014
- var rawMedias = isArray(medias) ? medias : [medias];
1015
- if (onUpload !== null) {
1016
- onUpload(rawMedias).then(function (newMedias) {
1016
+ var rawMedias = (isArray(medias) ? medias : [medias]).filter(function (it) {
1017
+ return it !== null;
1018
+ });
1019
+ if (onMediaUploaded !== null) {
1020
+ console.log('rawMedias', rawMedias);
1021
+ onMediaUploaded(rawMedias).then(function (newMedias) {
1022
+ var uploadedNewMedias = (isArray(newMedias) ? [].concat(_toConsumableArray(uploadedMedias || []), _toConsumableArray(newMedias)) : [].concat(_toConsumableArray(uploadedMedias || []), [newMedias])).filter(function (it) {
1023
+ return it !== null;
1024
+ });
1025
+ setUploadedMedias(uploadedNewMedias);
1026
+ console.log('uploaded', uploadedNewMedias, onSelectionChange);
1017
1027
  if (onSelectionChange !== null) {
1018
1028
  onSelectionChange(newMedias);
1019
- onQueryReset();
1029
+ onQueryReset(); // think about this
1020
1030
  reload();
1021
1031
  }
1022
1032
  });
1033
+ } else {
1034
+ setUploadedMedias(rawMedias);
1035
+ if (onSelectionChange !== null) {
1036
+ onSelectionChange(rawMedias);
1037
+ onQueryReset();
1038
+ reload();
1039
+ }
1023
1040
  }
1024
- if (onSelectionChange !== null) {
1025
- onSelectionChange(rawMedias);
1026
- onQueryReset();
1027
- reload();
1028
- }
1029
- }, [onUpload, reload, onQueryReset, onSelectionChange]);
1041
+ }, [onMediaUploaded, reload, onQueryReset, onSelectionChange, uploadedMedias, setUploadedMedias]);
1030
1042
  var pagination = /*#__PURE__*/React.createElement(Pagination, {
1031
1043
  page: page,
1032
1044
  lastPage: lastPage,
@@ -1082,18 +1094,33 @@ function MediasBrowser(_ref) {
1082
1094
  })
1083
1095
  });
1084
1096
  }
1097
+ if (columnId === 'actions') {
1098
+ // console.log('column', column);
1099
+ var _ref6 = column || {},
1100
+ _ref6$actions = _ref6.actions,
1101
+ actions = _ref6$actions === void 0 ? [] : _ref6$actions;
1102
+ return _objectSpread(_objectSpread({}, column), {}, {
1103
+ actions: (actions || []).reduce(function (acc, action) {
1104
+ if (action === 'delete') {
1105
+ acc.push('restore');
1106
+ }
1107
+ acc.push(action);
1108
+ return acc;
1109
+ }, [])
1110
+ });
1111
+ }
1085
1112
  return column;
1086
1113
  }) : columns;
1087
1114
  }, [columns, withTrash, showTrashed]);
1088
1115
  var finalItems = React.useMemo(function () {
1089
1116
  if (withStickySelection && extraItems !== null) {
1090
- return uniqBy([].concat(_toConsumableArray((extraItems || []).map(function (item) {
1117
+ return uniqBy([].concat(_toConsumableArray(page === 1 ? uploadedMedias || [] : []), _toConsumableArray((extraItems || []).map(function (item) {
1091
1118
  var _item$id = item.id,
1092
1119
  itemId = _item$id === void 0 ? null : _item$id;
1093
1120
  return (allItems || []).find(function () {
1094
- var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1095
- _ref6$id = _ref6.id,
1096
- otherId = _ref6$id === void 0 ? null : _ref6$id;
1121
+ var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1122
+ _ref7$id = _ref7.id,
1123
+ otherId = _ref7$id === void 0 ? null : _ref7$id;
1097
1124
  return otherId === itemId;
1098
1125
  }) || item || null;
1099
1126
  }).filter(function (it) {
@@ -1139,7 +1166,7 @@ function MediasBrowser(_ref) {
1139
1166
  withButton: true,
1140
1167
  withoutMedia: true,
1141
1168
  uppyConfig: uppyConfig,
1142
- onChange: onMediaUploaded
1169
+ onChange: onUploadComplete
1143
1170
  }) : null), /*#__PURE__*/React.createElement("div", {
1144
1171
  className: classNames(['d-flex', 'mt-1', 'mb-3', {
1145
1172
  'justify-content-between': hasLayouts,
@@ -1190,9 +1217,9 @@ function MediasBrowser(_ref) {
1190
1217
  loading: loading,
1191
1218
  actionsProps: {
1192
1219
  getDeletePropsFromItem: function getDeletePropsFromItem() {
1193
- var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1194
- _ref7$id = _ref7.id,
1195
- id = _ref7$id === void 0 ? null : _ref7$id;
1220
+ var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1221
+ _ref8$id = _ref8.id,
1222
+ id = _ref8$id === void 0 ? null : _ref8$id;
1196
1223
  return {
1197
1224
  href: null,
1198
1225
  onClick: function onClick() {
@@ -1270,31 +1297,25 @@ function MediasPicker(_ref) {
1270
1297
  MediasPicker.propTypes = propTypes$4;
1271
1298
  MediasPicker.defaultProps = defaultProps$4;
1272
1299
 
1273
- var _excluded$3 = ["api", "media", "fields"];
1300
+ var _excluded$3 = ["api", "media"];
1274
1301
  var propTypes$3 = {
1275
1302
  api: apiPropTypes,
1276
1303
  media: PropTypes.shape({
1277
1304
  id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1278
- }),
1279
- fields: PropTypes.arrayOf(PropTypes.shape({
1280
- id: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
1281
- }))
1305
+ })
1282
1306
  };
1283
1307
  var defaultProps$3 = {
1284
1308
  api: null,
1285
- media: null,
1286
- fields: null
1309
+ media: null
1287
1310
  };
1288
1311
  function MediasBrowserContainer(_ref) {
1289
1312
  var api = _ref.api,
1290
1313
  media = _ref.media,
1291
- fields = _ref.fields,
1292
1314
  props = _objectWithoutProperties(_ref, _excluded$3);
1293
1315
  return /*#__PURE__*/React.createElement(MediasApiProvider, {
1294
1316
  api: api
1295
1317
  }, /*#__PURE__*/React.createElement(MediaProvider, {
1296
- media: media,
1297
- fields: fields
1318
+ media: media
1298
1319
  }, /*#__PURE__*/React.createElement(MediasBrowser, props)));
1299
1320
  }
1300
1321
  MediasBrowserContainer.propTypes = propTypes$3;
@@ -1310,7 +1331,8 @@ var propTypes$2 = {
1310
1331
  };
1311
1332
  var defaultProps$2 = {
1312
1333
  api: null,
1313
- media: null
1334
+ media: null,
1335
+ onChange: null
1314
1336
  };
1315
1337
  function MediasPickerContainer(_ref) {
1316
1338
  var api = _ref.api,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/medias",
3
- "version": "3.0.187",
3
+ "version": "3.0.190",
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.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",
49
+ "@panneau/core": "^3.0.190",
50
+ "@panneau/data": "^3.0.190",
51
+ "@panneau/display-image": "^3.0.190",
52
+ "@panneau/element-button": "^3.0.190",
53
+ "@panneau/element-buttons": "^3.0.190",
54
+ "@panneau/element-form": "^3.0.190",
55
+ "@panneau/element-form-status": "^3.0.190",
56
+ "@panneau/element-grid": "^3.0.190",
57
+ "@panneau/element-icon": "^3.0.190",
58
+ "@panneau/element-media-card": "^3.0.190",
59
+ "@panneau/element-media-player": "^3.0.190",
60
+ "@panneau/element-pagination": "^3.0.190",
61
+ "@panneau/element-table": "^3.0.190",
62
+ "@panneau/field-upload": "^3.0.190",
63
+ "@panneau/filter-filters": "^3.0.190",
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": "659bc65b0123e1d2d5b9aefa6628d49726100747"
72
+ "gitHead": "ec38fa9c18606a8d5566183b8acf659a894eca0d"
73
73
  }