@panneau/medias 3.0.172 → 3.0.173
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.
- package/es/index.js +53 -31
- package/lib/index.js +52 -30
- package/package.json +3 -3
package/es/index.js
CHANGED
@@ -23,7 +23,7 @@ import MediaCard from '@panneau/element-media-card';
|
|
23
23
|
import Pagination from '@panneau/element-pagination';
|
24
24
|
import Table from '@panneau/element-table';
|
25
25
|
import Filters from '@panneau/filter-filters';
|
26
|
-
import {
|
26
|
+
import { useItemsStore, useData, useApi } from '@panneau/data';
|
27
27
|
|
28
28
|
/* eslint-disable react/jsx-props-no-spreading */
|
29
29
|
var MediasApiContext = /*#__PURE__*/React.createContext(null);
|
@@ -60,7 +60,7 @@ function MediasApiProvider(_ref) {
|
|
60
60
|
MediasApiProvider.propTypes = propTypes$9;
|
61
61
|
MediasApiProvider.defaultProps = defaultProps$9;
|
62
62
|
|
63
|
-
var _excluded$7 = ["items"
|
63
|
+
var _excluded$7 = ["items"];
|
64
64
|
var useMedias = function useMedias() {
|
65
65
|
var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
66
66
|
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
@@ -71,18 +71,18 @@ var useMedias = function useMedias() {
|
|
71
71
|
var requestedPage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
72
72
|
return api.get(query, requestedPage, count);
|
73
73
|
}, [api, query, count]);
|
74
|
-
var
|
74
|
+
var _useItemsStore = useItemsStore('medias', _objectSpread({
|
75
75
|
getPage: page !== null ? getItems : null,
|
76
76
|
getItems: page === null ? getItems : null,
|
77
|
-
page: page
|
77
|
+
page: page,
|
78
|
+
count: count,
|
79
|
+
query: query
|
78
80
|
}, opts)),
|
79
|
-
items =
|
80
|
-
|
81
|
-
request = _objectWithoutProperties(_useItems, _excluded$7);
|
81
|
+
items = _useItemsStore.items,
|
82
|
+
props = _objectWithoutProperties(_useItemsStore, _excluded$7);
|
82
83
|
return _objectSpread({
|
83
|
-
|
84
|
-
|
85
|
-
}, request);
|
84
|
+
items: items
|
85
|
+
}, props);
|
86
86
|
};
|
87
87
|
var useMedias$1 = useMedias;
|
88
88
|
|
@@ -788,6 +788,7 @@ var propTypes$5 = {
|
|
788
788
|
onLayoutChange: PropTypes.func,
|
789
789
|
selectedCount: PropTypes.number,
|
790
790
|
onClearSelected: PropTypes.func,
|
791
|
+
withStickySelection: PropTypes.bool,
|
791
792
|
className: PropTypes.string,
|
792
793
|
buttonsClassName: PropTypes.string
|
793
794
|
};
|
@@ -819,6 +820,7 @@ var defaultProps$5 = {
|
|
819
820
|
onLayoutChange: null,
|
820
821
|
selectedCount: null,
|
821
822
|
onClearSelected: null,
|
823
|
+
withStickySelection: false,
|
822
824
|
className: null,
|
823
825
|
buttonsClassName: null
|
824
826
|
};
|
@@ -840,6 +842,7 @@ function MediasBrowser(_ref) {
|
|
840
842
|
onLayoutChange = _ref.onLayoutChange,
|
841
843
|
selectedCount = _ref.selectedCount,
|
842
844
|
onClearSelected = _ref.onClearSelected,
|
845
|
+
withStickySelection = _ref.withStickySelection,
|
843
846
|
className = _ref.className,
|
844
847
|
buttonsClassName = _ref.buttonsClassName;
|
845
848
|
var _useState = useState(initialItems || null),
|
@@ -884,10 +887,16 @@ function MediasBrowser(_ref) {
|
|
884
887
|
var _useMedias = useMedias$1(query, page, count, {
|
885
888
|
items: baseItems
|
886
889
|
}),
|
887
|
-
items = _useMedias.
|
888
|
-
|
889
|
-
|
890
|
-
|
890
|
+
items = _useMedias.items,
|
891
|
+
allItems = _useMedias.allItems,
|
892
|
+
_useMedias$loading = _useMedias.loading,
|
893
|
+
loading = _useMedias$loading === void 0 ? false : _useMedias$loading,
|
894
|
+
_useMedias$updateItem = _useMedias.updateItem,
|
895
|
+
updateItem = _useMedias$updateItem === void 0 ? null : _useMedias$updateItem,
|
896
|
+
_useMedias$pagination = _useMedias.pagination,
|
897
|
+
_useMedias$pagination2 = _useMedias$pagination === void 0 ? {} : _useMedias$pagination,
|
898
|
+
lastPage = _useMedias$pagination2.lastPage,
|
899
|
+
total = _useMedias$pagination2.total;
|
891
900
|
|
892
901
|
// For picker
|
893
902
|
useEffect(function () {
|
@@ -919,10 +928,10 @@ function MediasBrowser(_ref) {
|
|
919
928
|
var onCloseMedia = useCallback(function () {
|
920
929
|
setCurrentMedia(null);
|
921
930
|
}, [setCurrentMedia]);
|
922
|
-
var onSaveMedia = useCallback(function () {
|
931
|
+
var onSaveMedia = useCallback(function (item) {
|
923
932
|
setCurrentMedia(null);
|
924
|
-
|
925
|
-
}, [setCurrentMedia,
|
933
|
+
updateItem(item);
|
934
|
+
}, [setCurrentMedia, updateItem]);
|
926
935
|
var pagination = /*#__PURE__*/React.createElement(Pagination, {
|
927
936
|
page: page,
|
928
937
|
lastPage: lastPage,
|
@@ -951,13 +960,24 @@ function MediasBrowser(_ref) {
|
|
951
960
|
return filters;
|
952
961
|
}, [filters, types]);
|
953
962
|
var finalItems = useMemo(function () {
|
954
|
-
if (
|
955
|
-
return uniqBy([].concat(_toConsumableArray(extraItems
|
963
|
+
if (withStickySelection && extraItems !== null) {
|
964
|
+
return uniqBy([].concat(_toConsumableArray((extraItems || []).map(function (item) {
|
965
|
+
var _item$id = item.id,
|
966
|
+
itemId = _item$id === void 0 ? null : _item$id;
|
967
|
+
return (allItems || []).find(function () {
|
968
|
+
var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
969
|
+
_ref5$id = _ref5.id,
|
970
|
+
otherId = _ref5$id === void 0 ? null : _ref5$id;
|
971
|
+
return otherId === itemId;
|
972
|
+
}) || item || null;
|
973
|
+
}).filter(function (it) {
|
974
|
+
return it !== null;
|
975
|
+
})), _toConsumableArray(items || [])), function (it) {
|
956
976
|
return it === null || it === void 0 ? void 0 : it.id;
|
957
977
|
});
|
958
978
|
}
|
959
979
|
return items;
|
960
|
-
}, [items, page, extraItems]);
|
980
|
+
}, [items, page, allItems, withStickySelection, extraItems]);
|
961
981
|
return /*#__PURE__*/React.createElement("div", {
|
962
982
|
className: classNames([styles.container, className])
|
963
983
|
}, currentMedia !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
@@ -1096,18 +1116,20 @@ function MediasPicker(_ref) {
|
|
1096
1116
|
tableProps = _ref.tableProps,
|
1097
1117
|
className = _ref.className,
|
1098
1118
|
props = _objectWithoutProperties(_ref, _excluded$4);
|
1099
|
-
|
1119
|
+
var _useMediasForm = useMediasForm(),
|
1120
|
+
currentMedia = _useMediasForm.media;
|
1121
|
+
|
1122
|
+
// For selection
|
1100
1123
|
var _useState = useState(initialItems),
|
1101
1124
|
_useState2 = _slicedToArray(_useState, 2),
|
1102
|
-
|
1125
|
+
pageItems = _useState2[0],
|
1103
1126
|
setItems = _useState2[1];
|
1104
|
-
var
|
1105
|
-
|
1127
|
+
var disabled = pageItems === null || pageItems.length < 1;
|
1128
|
+
var onItemsChange = useCallback(function (newPageItems) {
|
1129
|
+
setItems(newPageItems);
|
1106
1130
|
}, [setItems]);
|
1107
|
-
var _useMediasForm = useMediasForm(),
|
1108
|
-
currentMedia = _useMediasForm.media;
|
1109
1131
|
var _useItemSelection = useItemSelection({
|
1110
|
-
|
1132
|
+
items: pageItems,
|
1111
1133
|
selectedItems: initialSelectedItems,
|
1112
1134
|
onSelectionChange: onChange,
|
1113
1135
|
multipleSelection: multiple
|
@@ -1118,7 +1140,6 @@ function MediasPicker(_ref) {
|
|
1118
1140
|
pageSelected = _useItemSelection.pageSelected,
|
1119
1141
|
selectedCount = _useItemSelection.selectedCount,
|
1120
1142
|
selectedItems = _useItemSelection.selectedItems;
|
1121
|
-
var disabled = currentItems === null || currentItems.length < 1;
|
1122
1143
|
var onConfirmSelection = useCallback(function () {
|
1123
1144
|
if (onConfirm !== null) {
|
1124
1145
|
onConfirm(selectedItems);
|
@@ -1134,13 +1155,14 @@ function MediasPicker(_ref) {
|
|
1134
1155
|
onSelectPage: onSelectPage,
|
1135
1156
|
selectedItems: selectedItems,
|
1136
1157
|
pageSelected: pageSelected
|
1137
|
-
}, tableProps)
|
1138
|
-
|
1158
|
+
}, tableProps),
|
1159
|
+
items: initialItems // TODO: fix useItems if actually using this
|
1139
1160
|
,
|
1140
1161
|
onItemsChange: onItemsChange,
|
1141
1162
|
selectedCount: selectedCount,
|
1142
1163
|
onClearSelected: onClearSelected,
|
1143
|
-
types: types
|
1164
|
+
types: types,
|
1165
|
+
extraItems: !multiple && initialSelectedItems !== null ? [initialSelectedItems] : initialSelectedItems
|
1144
1166
|
}, props)), multiple && !withoutButtons && currentMedia === null ? /*#__PURE__*/React.createElement("div", {
|
1145
1167
|
className: "d-flex w-100 align-items-end justify-content-end mt-3"
|
1146
1168
|
}, /*#__PURE__*/React.createElement("div", {
|
package/lib/index.js
CHANGED
@@ -62,7 +62,7 @@ function MediasApiProvider(_ref) {
|
|
62
62
|
MediasApiProvider.propTypes = propTypes$9;
|
63
63
|
MediasApiProvider.defaultProps = defaultProps$9;
|
64
64
|
|
65
|
-
var _excluded$7 = ["items"
|
65
|
+
var _excluded$7 = ["items"];
|
66
66
|
var useMedias = function useMedias() {
|
67
67
|
var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
68
68
|
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
@@ -73,18 +73,18 @@ var useMedias = function useMedias() {
|
|
73
73
|
var requestedPage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
74
74
|
return api.get(query, requestedPage, count);
|
75
75
|
}, [api, query, count]);
|
76
|
-
var
|
76
|
+
var _useItemsStore = data.useItemsStore('medias', _objectSpread({
|
77
77
|
getPage: page !== null ? getItems : null,
|
78
78
|
getItems: page === null ? getItems : null,
|
79
|
-
page: page
|
79
|
+
page: page,
|
80
|
+
count: count,
|
81
|
+
query: query
|
80
82
|
}, opts)),
|
81
|
-
items =
|
82
|
-
|
83
|
-
request = _objectWithoutProperties(_useItems, _excluded$7);
|
83
|
+
items = _useItemsStore.items,
|
84
|
+
props = _objectWithoutProperties(_useItemsStore, _excluded$7);
|
84
85
|
return _objectSpread({
|
85
|
-
|
86
|
-
|
87
|
-
}, request);
|
86
|
+
items: items
|
87
|
+
}, props);
|
88
88
|
};
|
89
89
|
var useMedias$1 = useMedias;
|
90
90
|
|
@@ -790,6 +790,7 @@ var propTypes$5 = {
|
|
790
790
|
onLayoutChange: PropTypes.func,
|
791
791
|
selectedCount: PropTypes.number,
|
792
792
|
onClearSelected: PropTypes.func,
|
793
|
+
withStickySelection: PropTypes.bool,
|
793
794
|
className: PropTypes.string,
|
794
795
|
buttonsClassName: PropTypes.string
|
795
796
|
};
|
@@ -821,6 +822,7 @@ var defaultProps$5 = {
|
|
821
822
|
onLayoutChange: null,
|
822
823
|
selectedCount: null,
|
823
824
|
onClearSelected: null,
|
825
|
+
withStickySelection: false,
|
824
826
|
className: null,
|
825
827
|
buttonsClassName: null
|
826
828
|
};
|
@@ -842,6 +844,7 @@ function MediasBrowser(_ref) {
|
|
842
844
|
onLayoutChange = _ref.onLayoutChange,
|
843
845
|
selectedCount = _ref.selectedCount,
|
844
846
|
onClearSelected = _ref.onClearSelected,
|
847
|
+
withStickySelection = _ref.withStickySelection,
|
845
848
|
className = _ref.className,
|
846
849
|
buttonsClassName = _ref.buttonsClassName;
|
847
850
|
var _useState = React.useState(initialItems || null),
|
@@ -886,10 +889,16 @@ function MediasBrowser(_ref) {
|
|
886
889
|
var _useMedias = useMedias$1(query, page, count, {
|
887
890
|
items: baseItems
|
888
891
|
}),
|
889
|
-
items = _useMedias.
|
890
|
-
|
891
|
-
|
892
|
-
|
892
|
+
items = _useMedias.items,
|
893
|
+
allItems = _useMedias.allItems,
|
894
|
+
_useMedias$loading = _useMedias.loading,
|
895
|
+
loading = _useMedias$loading === void 0 ? false : _useMedias$loading,
|
896
|
+
_useMedias$updateItem = _useMedias.updateItem,
|
897
|
+
updateItem = _useMedias$updateItem === void 0 ? null : _useMedias$updateItem,
|
898
|
+
_useMedias$pagination = _useMedias.pagination,
|
899
|
+
_useMedias$pagination2 = _useMedias$pagination === void 0 ? {} : _useMedias$pagination,
|
900
|
+
lastPage = _useMedias$pagination2.lastPage,
|
901
|
+
total = _useMedias$pagination2.total;
|
893
902
|
|
894
903
|
// For picker
|
895
904
|
React.useEffect(function () {
|
@@ -921,10 +930,10 @@ function MediasBrowser(_ref) {
|
|
921
930
|
var onCloseMedia = React.useCallback(function () {
|
922
931
|
setCurrentMedia(null);
|
923
932
|
}, [setCurrentMedia]);
|
924
|
-
var onSaveMedia = React.useCallback(function () {
|
933
|
+
var onSaveMedia = React.useCallback(function (item) {
|
925
934
|
setCurrentMedia(null);
|
926
|
-
|
927
|
-
}, [setCurrentMedia,
|
935
|
+
updateItem(item);
|
936
|
+
}, [setCurrentMedia, updateItem]);
|
928
937
|
var pagination = /*#__PURE__*/React.createElement(Pagination, {
|
929
938
|
page: page,
|
930
939
|
lastPage: lastPage,
|
@@ -953,13 +962,24 @@ function MediasBrowser(_ref) {
|
|
953
962
|
return filters;
|
954
963
|
}, [filters, types]);
|
955
964
|
var finalItems = React.useMemo(function () {
|
956
|
-
if (
|
957
|
-
return uniqBy([].concat(_toConsumableArray(extraItems
|
965
|
+
if (withStickySelection && extraItems !== null) {
|
966
|
+
return uniqBy([].concat(_toConsumableArray((extraItems || []).map(function (item) {
|
967
|
+
var _item$id = item.id,
|
968
|
+
itemId = _item$id === void 0 ? null : _item$id;
|
969
|
+
return (allItems || []).find(function () {
|
970
|
+
var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
971
|
+
_ref5$id = _ref5.id,
|
972
|
+
otherId = _ref5$id === void 0 ? null : _ref5$id;
|
973
|
+
return otherId === itemId;
|
974
|
+
}) || item || null;
|
975
|
+
}).filter(function (it) {
|
976
|
+
return it !== null;
|
977
|
+
})), _toConsumableArray(items || [])), function (it) {
|
958
978
|
return it === null || it === void 0 ? void 0 : it.id;
|
959
979
|
});
|
960
980
|
}
|
961
981
|
return items;
|
962
|
-
}, [items, page, extraItems]);
|
982
|
+
}, [items, page, allItems, withStickySelection, extraItems]);
|
963
983
|
return /*#__PURE__*/React.createElement("div", {
|
964
984
|
className: classNames([styles.container, className])
|
965
985
|
}, currentMedia !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
@@ -1098,18 +1118,20 @@ function MediasPicker(_ref) {
|
|
1098
1118
|
tableProps = _ref.tableProps,
|
1099
1119
|
className = _ref.className,
|
1100
1120
|
props = _objectWithoutProperties(_ref, _excluded$4);
|
1101
|
-
|
1121
|
+
var _useMediasForm = useMediasForm(),
|
1122
|
+
currentMedia = _useMediasForm.media;
|
1123
|
+
|
1124
|
+
// For selection
|
1102
1125
|
var _useState = React.useState(initialItems),
|
1103
1126
|
_useState2 = _slicedToArray(_useState, 2),
|
1104
|
-
|
1127
|
+
pageItems = _useState2[0],
|
1105
1128
|
setItems = _useState2[1];
|
1106
|
-
var
|
1107
|
-
|
1129
|
+
var disabled = pageItems === null || pageItems.length < 1;
|
1130
|
+
var onItemsChange = React.useCallback(function (newPageItems) {
|
1131
|
+
setItems(newPageItems);
|
1108
1132
|
}, [setItems]);
|
1109
|
-
var _useMediasForm = useMediasForm(),
|
1110
|
-
currentMedia = _useMediasForm.media;
|
1111
1133
|
var _useItemSelection = hooks.useItemSelection({
|
1112
|
-
|
1134
|
+
items: pageItems,
|
1113
1135
|
selectedItems: initialSelectedItems,
|
1114
1136
|
onSelectionChange: onChange,
|
1115
1137
|
multipleSelection: multiple
|
@@ -1120,7 +1142,6 @@ function MediasPicker(_ref) {
|
|
1120
1142
|
pageSelected = _useItemSelection.pageSelected,
|
1121
1143
|
selectedCount = _useItemSelection.selectedCount,
|
1122
1144
|
selectedItems = _useItemSelection.selectedItems;
|
1123
|
-
var disabled = currentItems === null || currentItems.length < 1;
|
1124
1145
|
var onConfirmSelection = React.useCallback(function () {
|
1125
1146
|
if (onConfirm !== null) {
|
1126
1147
|
onConfirm(selectedItems);
|
@@ -1136,13 +1157,14 @@ function MediasPicker(_ref) {
|
|
1136
1157
|
onSelectPage: onSelectPage,
|
1137
1158
|
selectedItems: selectedItems,
|
1138
1159
|
pageSelected: pageSelected
|
1139
|
-
}, tableProps)
|
1140
|
-
|
1160
|
+
}, tableProps),
|
1161
|
+
items: initialItems // TODO: fix useItems if actually using this
|
1141
1162
|
,
|
1142
1163
|
onItemsChange: onItemsChange,
|
1143
1164
|
selectedCount: selectedCount,
|
1144
1165
|
onClearSelected: onClearSelected,
|
1145
|
-
types: types
|
1166
|
+
types: types,
|
1167
|
+
extraItems: !multiple && initialSelectedItems !== null ? [initialSelectedItems] : initialSelectedItems
|
1146
1168
|
}, props)), multiple && !withoutButtons && currentMedia === null ? /*#__PURE__*/React.createElement("div", {
|
1147
1169
|
className: "d-flex w-100 align-items-end justify-content-end mt-3"
|
1148
1170
|
}, /*#__PURE__*/React.createElement("div", {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@panneau/medias",
|
3
|
-
"version": "3.0.
|
3
|
+
"version": "3.0.173",
|
4
4
|
"description": "",
|
5
5
|
"keywords": [
|
6
6
|
"javascript"
|
@@ -47,7 +47,7 @@
|
|
47
47
|
"dependencies": {
|
48
48
|
"@babel/runtime": "^7.12.5",
|
49
49
|
"@panneau/core": "^3.0.169",
|
50
|
-
"@panneau/data": "^3.0.
|
50
|
+
"@panneau/data": "^3.0.173",
|
51
51
|
"@panneau/display-image": "^3.0.172",
|
52
52
|
"@panneau/element-button": "^3.0.169",
|
53
53
|
"@panneau/element-buttons": "^3.0.169",
|
@@ -68,5 +68,5 @@
|
|
68
68
|
"publishConfig": {
|
69
69
|
"access": "public"
|
70
70
|
},
|
71
|
-
"gitHead": "
|
71
|
+
"gitHead": "29037e4f0ed74d81586442a76daffcfb6d062200"
|
72
72
|
}
|