@panneau/medias 3.0.244 → 3.0.246

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 (2) hide show
  1. package/es/index.js +91 -50
  2. package/package.json +3 -3
package/es/index.js CHANGED
@@ -578,6 +578,25 @@ function MediaForm(_ref) {
578
578
  MediaForm.propTypes = propTypes$7;
579
579
  MediaForm.defaultProps = defaultProps$7;
580
580
 
581
+ var useMediaRestore = function useMediaRestore() {
582
+ var _useState = useState(false),
583
+ _useState2 = _slicedToArray(_useState, 2),
584
+ restoring = _useState2[0],
585
+ setRestoring = _useState2[1];
586
+ var api = useMediasApi();
587
+ var mediaRestore = useCallback(function (id, data) {
588
+ setRestoring(true);
589
+ return api.restore(id, data).then(function (response) {
590
+ setRestoring(false);
591
+ return response;
592
+ });
593
+ }, [api, setRestoring]);
594
+ return {
595
+ mediaRestore: mediaRestore,
596
+ restoring: restoring
597
+ };
598
+ };
599
+
581
600
  var MediaContext = /*#__PURE__*/React.createContext(null);
582
601
  var useCurrentMedia = function useCurrentMedia() {
583
602
  return useContext(MediaContext);
@@ -821,31 +840,17 @@ var defaultFilters = [{
821
840
  // },
822
841
  ];
823
842
 
824
- var useMediaRestore = function useMediaRestore() {
825
- var _useState = useState(false),
826
- _useState2 = _slicedToArray(_useState, 2),
827
- restoring = _useState2[0],
828
- setRestoring = _useState2[1];
829
- var api = useMediasApi();
830
- var mediaRestore = useCallback(function (id, data) {
831
- setRestoring(true);
832
- return api.restore(id, data).then(function (response) {
833
- setRestoring(false);
834
- return response;
835
- });
836
- }, [api, setRestoring]);
837
- return {
838
- mediaRestore: mediaRestore,
839
- restoring: restoring
840
- };
841
- };
842
-
843
843
  var _excluded$5 = ["page", "count"],
844
844
  _excluded2 = ["types", "trashed"];
845
845
  var propTypes$5 = {
846
846
  items: PropTypes$1.medias,
847
847
  extraItems: PropTypes$1.medias,
848
848
  types: PropTypes.arrayOf(PropTypes.string),
849
+ permissions: PropTypes.shape({
850
+ create: PropTypes.bool,
851
+ edit: PropTypes.bool,
852
+ "delete": PropTypes.bool
853
+ }),
849
854
  filters: PropTypes$1.filters,
850
855
  columns: PropTypes$1.tableColumns,
851
856
  query: PropTypes.shape({}),
@@ -875,6 +880,7 @@ var defaultProps$5 = {
875
880
  items: null,
876
881
  extraItems: null,
877
882
  types: null,
883
+ permissions: null,
878
884
  filters: defaultFilters,
879
885
  columns: defaultColumns,
880
886
  fields: defaultFields,
@@ -914,6 +920,7 @@ function MediasBrowser(_ref) {
914
920
  var initialItems = _ref.items,
915
921
  extraItems = _ref.extraItems,
916
922
  types = _ref.types,
923
+ permissions = _ref.permissions,
917
924
  baseUrl = _ref.baseUrl,
918
925
  filters = _ref.filters,
919
926
  columns = _ref.columns,
@@ -972,13 +979,21 @@ function MediasBrowser(_ref) {
972
979
  count = _useMemo$count === void 0 ? null : _useMemo$count,
973
980
  _useMemo$query = _useMemo.query,
974
981
  query = _useMemo$query === void 0 ? null : _useMemo$query;
982
+ var _ref3 = permissions || {},
983
+ _ref3$create = _ref3.create,
984
+ canCreate = _ref3$create === void 0 ? true : _ref3$create,
985
+ _ref3$edit = _ref3.edit,
986
+ canEdit = _ref3$edit === void 0 ? true : _ref3$edit,
987
+ _ref3$delete = _ref3["delete"],
988
+ canDelete = _ref3$delete === void 0 ? true : _ref3$delete;
989
+ var canUpload = canCreate && !withoutUpload;
975
990
 
976
991
  // eslint-disable-next-line no-unused-vars
977
- var _ref3 = query || {};
978
- _ref3.types;
979
- var _ref3$trashed = _ref3.trashed,
980
- trashed = _ref3$trashed === void 0 ? null : _ref3$trashed,
981
- queryWithoutTypes = _objectWithoutProperties(_ref3, _excluded2);
992
+ var _ref4 = query || {};
993
+ _ref4.types;
994
+ var _ref4$trashed = _ref4.trashed,
995
+ trashed = _ref4$trashed === void 0 ? null : _ref4$trashed,
996
+ queryWithoutTypes = _objectWithoutProperties(_ref4, _excluded2);
982
997
  var _useMediaTrash = useMediaTrash$1(),
983
998
  mediaTrash = _useMediaTrash.mediaTrash,
984
999
  trashing = _useMediaTrash.trashing;
@@ -1061,9 +1076,9 @@ function MediasBrowser(_ref) {
1061
1076
  var onTrashMedia = useCallback(function (id) {
1062
1077
  return !showTrashed && withTrash ? mediaTrash(id).then(function () {
1063
1078
  if (!multipleSelection) {
1064
- var _ref4 = selectedItems || {},
1065
- _ref4$id = _ref4.id,
1066
- selectedId = _ref4$id === void 0 ? null : _ref4$id;
1079
+ var _ref5 = selectedItems || {},
1080
+ _ref5$id = _ref5.id,
1081
+ selectedId = _ref5$id === void 0 ? null : _ref5$id;
1067
1082
  if (selectedId !== null && selectedId === id) {
1068
1083
  onSelectionChange(null);
1069
1084
  }
@@ -1071,9 +1086,9 @@ function MediasBrowser(_ref) {
1071
1086
  // Todo remove from mult selection
1072
1087
  }).then(reload) : mediaDelete(id).then(function () {
1073
1088
  if (!multipleSelection) {
1074
- var _ref5 = selectedItems || {},
1075
- _ref5$id = _ref5.id,
1076
- selectedId = _ref5$id === void 0 ? null : _ref5$id;
1089
+ var _ref6 = selectedItems || {},
1090
+ _ref6$id = _ref6.id,
1091
+ selectedId = _ref6$id === void 0 ? null : _ref6$id;
1077
1092
  if (selectedId !== null && selectedId === id) {
1078
1093
  onSelectionChange(null);
1079
1094
  }
@@ -1095,10 +1110,10 @@ function MediasBrowser(_ref) {
1095
1110
  });
1096
1111
  setUploadedMedias(uploadedNewMedias);
1097
1112
  if (onSelectionChange !== null) {
1098
- var _ref6 = newMedias || [],
1099
- _ref7 = _slicedToArray(_ref6, 1),
1100
- _ref7$ = _ref7[0],
1101
- firstMedia = _ref7$ === void 0 ? null : _ref7$;
1113
+ var _ref7 = newMedias || [],
1114
+ _ref8 = _slicedToArray(_ref7, 1),
1115
+ _ref8$ = _ref8[0],
1116
+ firstMedia = _ref8$ === void 0 ? null : _ref8$;
1102
1117
  onSelectionChange(multipleSelection && isArray(newMedias) ? newMedias : firstMedia);
1103
1118
  onQueryReset();
1104
1119
  reload();
@@ -1151,9 +1166,9 @@ function MediasBrowser(_ref) {
1151
1166
  }]) : filters;
1152
1167
  if (types !== null && partialFilters !== null) {
1153
1168
  return (partialFilters || []).map(function (filter) {
1154
- var _ref8 = filter || {},
1155
- _ref8$id = _ref8.id,
1156
- id = _ref8$id === void 0 ? null : _ref8$id;
1169
+ var _ref9 = filter || {},
1170
+ _ref9$id = _ref9.id,
1171
+ id = _ref9$id === void 0 ? null : _ref9$id;
1157
1172
  return id === 'types' ? _objectSpread(_objectSpread({}, filter), {}, {
1158
1173
  disabled: true
1159
1174
  }) : filter;
@@ -1161,11 +1176,11 @@ function MediasBrowser(_ref) {
1161
1176
  }
1162
1177
  return partialFilters;
1163
1178
  }, [filters, types, withTrash, showTrashed, onClickTrash]);
1164
- var finalColumns = useMemo(function () {
1179
+ var partialColumns = useMemo(function () {
1165
1180
  return withTrash && showTrashed ? (columns || []).map(function (column) {
1166
- var _ref9 = column || {},
1167
- _ref9$id = _ref9.id,
1168
- columnId = _ref9$id === void 0 ? null : _ref9$id;
1181
+ var _ref10 = column || {},
1182
+ _ref10$id = _ref10.id,
1183
+ columnId = _ref10$id === void 0 ? null : _ref10$id;
1169
1184
  if (columnId === 'created_at') {
1170
1185
  return _objectSpread(_objectSpread({}, column), {}, {
1171
1186
  path: 'deleted_at',
@@ -1179,9 +1194,9 @@ function MediasBrowser(_ref) {
1179
1194
  });
1180
1195
  }
1181
1196
  if (columnId === 'actions') {
1182
- var _ref10 = column || {},
1183
- _ref10$actions = _ref10.actions,
1184
- actions = _ref10$actions === void 0 ? [] : _ref10$actions;
1197
+ var _ref11 = column || {},
1198
+ _ref11$actions = _ref11.actions,
1199
+ actions = _ref11$actions === void 0 ? [] : _ref11$actions;
1185
1200
  return _objectSpread(_objectSpread({}, column), {}, {
1186
1201
  actions: (actions || []).reduce(function (acc, action) {
1187
1202
  if (action === 'delete') {
@@ -1204,6 +1219,32 @@ function MediasBrowser(_ref) {
1204
1219
  return column;
1205
1220
  }) : columns;
1206
1221
  }, [columns, withTrash, showTrashed]);
1222
+ var finalColumns = useMemo(function () {
1223
+ return (partialColumns || []).map(function (column) {
1224
+ var _ref12 = column || {},
1225
+ _ref12$id = _ref12.id,
1226
+ columnId = _ref12$id === void 0 ? null : _ref12$id;
1227
+ if (columnId === 'actions') {
1228
+ var _ref13 = column || {},
1229
+ _ref13$actions = _ref13.actions,
1230
+ actions = _ref13$actions === void 0 ? [] : _ref13$actions;
1231
+ var availableActions = actions.filter(function (act) {
1232
+ return act !== 'delete' || canDelete;
1233
+ }).filter(function (act) {
1234
+ return act !== 'edit' || canEdit;
1235
+ });
1236
+ if (availableActions.length === 0) {
1237
+ return null;
1238
+ }
1239
+ return _objectSpread(_objectSpread({}, column), {}, {
1240
+ actions: availableActions
1241
+ });
1242
+ }
1243
+ return column;
1244
+ }).filter(function (act) {
1245
+ return act !== null;
1246
+ });
1247
+ }, [partialColumns, canEdit, canDelete]);
1207
1248
  var hasQueryItem = useMemo(function () {
1208
1249
  var showOnTopQuery = types === null ? query : queryWithoutTypes;
1209
1250
  return showOnTopQuery !== null && !trashed ? Object.keys(showOnTopQuery).length > 0 : false;
@@ -1219,9 +1260,9 @@ function MediasBrowser(_ref) {
1219
1260
  var _item$id = item.id,
1220
1261
  itemId = _item$id === void 0 ? null : _item$id;
1221
1262
  return (allItems || []).find(function () {
1222
- var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1223
- _ref11$id = _ref11.id,
1224
- otherId = _ref11$id === void 0 ? null : _ref11$id;
1263
+ var _ref14 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1264
+ _ref14$id = _ref14.id,
1265
+ otherId = _ref14$id === void 0 ? null : _ref14$id;
1225
1266
  return otherId === itemId;
1226
1267
  }) || item || null;
1227
1268
  }).filter(function (it) {
@@ -1258,7 +1299,7 @@ function MediasBrowser(_ref) {
1258
1299
  onChange: onQueryChange,
1259
1300
  onReset: onQueryReset,
1260
1301
  theme: theme
1261
- }) : null, !withoutUpload ? /*#__PURE__*/React.createElement(UploadField, {
1302
+ }) : null, canUpload ? /*#__PURE__*/React.createElement(UploadField, {
1262
1303
  className: "ms-auto w-auto text-nowrap mt-2 mb-2 ps-2",
1263
1304
  withButton: true,
1264
1305
  withoutMedia: true,
@@ -1331,8 +1372,8 @@ function MediasBrowser(_ref) {
1331
1372
  ,
1332
1373
  actionsProps: {
1333
1374
  getDeletePropsFromItem: function getDeletePropsFromItem() {
1334
- var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1335
- _ref12.id;
1375
+ var _ref15 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1376
+ _ref15.id;
1336
1377
  return {
1337
1378
  href: null,
1338
1379
  withConfirmation: true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/medias",
3
- "version": "3.0.244",
3
+ "version": "3.0.246",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -64,7 +64,7 @@
64
64
  "@panneau/element-media-player": "^3.0.244",
65
65
  "@panneau/element-pagination": "^3.0.244",
66
66
  "@panneau/element-table": "^3.0.244",
67
- "@panneau/field-upload": "^3.0.244",
67
+ "@panneau/field-upload": "^3.0.245",
68
68
  "@panneau/filter-filters": "^3.0.244",
69
69
  "classnames": "^2.5.1",
70
70
  "lodash": "^4.17.21",
@@ -74,5 +74,5 @@
74
74
  "publishConfig": {
75
75
  "access": "public"
76
76
  },
77
- "gitHead": "41028d7e3eddfb81b41a4f9c9a80b4a5cf63c2f0"
77
+ "gitHead": "ff4eb6478ed963f29c9686e4463ffbf4d3791bcb"
78
78
  }