@panneau/medias 3.0.171 → 3.0.172
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/assets/css/styles.css +1 -1
- package/es/index.js +48 -69
- package/lib/index.js +48 -69
- package/package.json +6 -6
package/assets/css/styles.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
.panneau-medias-mediaFrame{margin-bottom:10px;position:relative}.panneau-medias-playButton{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}
|
1
|
+
.panneau-medias-mediaFrame{aspect-ratio:1/1;margin-bottom:10px;position:relative}.panneau-medias-playButton{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}
|
package/es/index.js
CHANGED
@@ -9,10 +9,12 @@ import { useForm, useQuery, useItemSelection } from '@panneau/core/hooks';
|
|
9
9
|
import Button from '@panneau/element-button';
|
10
10
|
import Form from '@panneau/element-form';
|
11
11
|
import FormStatus from '@panneau/element-form-status';
|
12
|
+
import ImageDisplay from '@panneau/display-image';
|
12
13
|
import MediaPlayer from '@panneau/element-media-player';
|
13
|
-
import
|
14
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
14
15
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
15
16
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
17
|
+
import uniqBy from 'lodash/uniqBy';
|
16
18
|
import { PropTypes as PropTypes$1 } from '@panneau/core';
|
17
19
|
import Buttons from '@panneau/element-buttons';
|
18
20
|
import Grid from '@panneau/element-grid';
|
@@ -22,7 +24,6 @@ import Pagination from '@panneau/element-pagination';
|
|
22
24
|
import Table from '@panneau/element-table';
|
23
25
|
import Filters from '@panneau/filter-filters';
|
24
26
|
import { useItems, useData, useApi } from '@panneau/data';
|
25
|
-
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
26
27
|
|
27
28
|
/* eslint-disable react/jsx-props-no-spreading */
|
28
29
|
var MediasApiContext = /*#__PURE__*/React.createContext(null);
|
@@ -214,22 +215,18 @@ function MediaFrame(_ref) {
|
|
214
215
|
setShowPlayer(!showPlayer);
|
215
216
|
}, [showPlayer, setShowPlayer]);
|
216
217
|
return /*#__PURE__*/React.createElement("div", {
|
217
|
-
className: classNames([
|
218
|
+
className: classNames([styles.mediaFrame, 'position-relative', 'd-flex', 'flex-grow-1', 'w-100', 'mw-100', _defineProperty({}, className, className != null)])
|
218
219
|
}, showPlayer ? /*#__PURE__*/React.createElement(MediaPlayer, {
|
219
220
|
value: value,
|
220
221
|
width: "100%"
|
221
|
-
}) : /*#__PURE__*/React.createElement(
|
222
|
+
}) : /*#__PURE__*/React.createElement(ImageDisplay, {
|
223
|
+
className: "w-100",
|
222
224
|
value: value,
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
theme: "secondary",
|
229
|
-
onClick: onClick,
|
230
|
-
icon: "play-fill",
|
231
|
-
size: "lg"
|
232
|
-
}) : null)));
|
225
|
+
maxWidth: "100%",
|
226
|
+
maxHeight: "100%",
|
227
|
+
withoutZoom: true,
|
228
|
+
onClick: type === 'video' || type === 'audio' ? onClick : null
|
229
|
+
}));
|
233
230
|
}
|
234
231
|
MediaFrame.propTypes = propTypes$8;
|
235
232
|
MediaFrame.defaultProps = defaultProps$8;
|
@@ -775,10 +772,8 @@ var _excluded$5 = ["page", "count"],
|
|
775
772
|
_excluded2 = ["types"];
|
776
773
|
var propTypes$5 = {
|
777
774
|
items: PropTypes$1.medias,
|
775
|
+
extraItems: PropTypes$1.medias,
|
778
776
|
types: PropTypes.arrayOf(PropTypes.string),
|
779
|
-
// uploadButton: PropTypes.shape({
|
780
|
-
// value: PropTypes.oneOfType([PanneauPropTypes.medias, PanneauPropTypes.media]),
|
781
|
-
// }),
|
782
777
|
buttons: PropTypes$1.buttons,
|
783
778
|
filters: PropTypes$1.filters,
|
784
779
|
columns: PropTypes$1.tableColumns,
|
@@ -789,16 +784,16 @@ var propTypes$5 = {
|
|
789
784
|
layouts: PropTypes.arrayOf(PropTypes.shape({})),
|
790
785
|
theme: PropTypes.string,
|
791
786
|
tableProps: PropTypes.bool,
|
792
|
-
onSelectItem: PropTypes.func,
|
793
|
-
onSelectItems: PropTypes.func,
|
794
787
|
onItemsChange: PropTypes.func,
|
795
788
|
onLayoutChange: PropTypes.func,
|
796
789
|
selectedCount: PropTypes.number,
|
797
790
|
onClearSelected: PropTypes.func,
|
798
|
-
className: PropTypes.string
|
791
|
+
className: PropTypes.string,
|
792
|
+
buttonsClassName: PropTypes.string
|
799
793
|
};
|
800
794
|
var defaultProps$5 = {
|
801
795
|
items: null,
|
796
|
+
extraItems: null,
|
802
797
|
types: null,
|
803
798
|
buttons: null,
|
804
799
|
filters: defaultFilters,
|
@@ -820,16 +815,16 @@ var defaultProps$5 = {
|
|
820
815
|
}],
|
821
816
|
theme: null,
|
822
817
|
tableProps: null,
|
823
|
-
onSelectItem: null,
|
824
|
-
onSelectItems: null,
|
825
818
|
onItemsChange: null,
|
826
819
|
onLayoutChange: null,
|
827
820
|
selectedCount: null,
|
828
821
|
onClearSelected: null,
|
829
|
-
className: null
|
822
|
+
className: null,
|
823
|
+
buttonsClassName: null
|
830
824
|
};
|
831
825
|
function MediasBrowser(_ref) {
|
832
826
|
var initialItems = _ref.items,
|
827
|
+
extraItems = _ref.extraItems,
|
833
828
|
types = _ref.types,
|
834
829
|
baseUrl = _ref.baseUrl,
|
835
830
|
buttons = _ref.buttons,
|
@@ -841,13 +836,12 @@ function MediasBrowser(_ref) {
|
|
841
836
|
layouts = _ref.layouts,
|
842
837
|
theme = _ref.theme,
|
843
838
|
tableProps = _ref.tableProps,
|
844
|
-
onSelectItem = _ref.onSelectItem,
|
845
|
-
onSelectItems = _ref.onSelectItems,
|
846
839
|
onItemsChange = _ref.onItemsChange,
|
847
840
|
onLayoutChange = _ref.onLayoutChange,
|
848
841
|
selectedCount = _ref.selectedCount,
|
849
842
|
onClearSelected = _ref.onClearSelected,
|
850
|
-
className = _ref.className
|
843
|
+
className = _ref.className,
|
844
|
+
buttonsClassName = _ref.buttonsClassName;
|
851
845
|
var _useState = useState(initialItems || null),
|
852
846
|
_useState2 = _slicedToArray(_useState, 1),
|
853
847
|
baseItems = _useState2[0];
|
@@ -925,13 +919,6 @@ function MediasBrowser(_ref) {
|
|
925
919
|
var onCloseMedia = useCallback(function () {
|
926
920
|
setCurrentMedia(null);
|
927
921
|
}, [setCurrentMedia]);
|
928
|
-
|
929
|
-
// TODO: context for this?
|
930
|
-
useCallback(function () {
|
931
|
-
var media = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
932
|
-
onSelectItems(media);
|
933
|
-
onQueryReset();
|
934
|
-
}, [setCurrentMedia, onQueryReset, onSelectItems]);
|
935
922
|
var onSaveMedia = useCallback(function () {
|
936
923
|
setCurrentMedia(null);
|
937
924
|
onQueryReset();
|
@@ -963,13 +950,20 @@ function MediasBrowser(_ref) {
|
|
963
950
|
}
|
964
951
|
return filters;
|
965
952
|
}, [filters, types]);
|
953
|
+
var finalItems = useMemo(function () {
|
954
|
+
if (page === 1 && extraItems !== null) {
|
955
|
+
return uniqBy([].concat(_toConsumableArray(extraItems), _toConsumableArray(items || [])), function (it) {
|
956
|
+
return it === null || it === void 0 ? void 0 : it.id;
|
957
|
+
});
|
958
|
+
}
|
959
|
+
return items;
|
960
|
+
}, [items, page, extraItems]);
|
966
961
|
return /*#__PURE__*/React.createElement("div", {
|
967
962
|
className: classNames([styles.container, className])
|
968
963
|
}, currentMedia !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
969
964
|
className: "mt-2 mb-4"
|
970
965
|
}, /*#__PURE__*/React.createElement(Button, {
|
971
966
|
theme: "primary",
|
972
|
-
outline: true,
|
973
967
|
onClick: onCloseMedia,
|
974
968
|
icon: "arrow-left"
|
975
969
|
}, /*#__PURE__*/React.createElement(FormattedMessage, {
|
@@ -985,7 +979,6 @@ function MediasBrowser(_ref) {
|
|
985
979
|
onSave: onSaveMedia,
|
986
980
|
onClose: onCloseMedia
|
987
981
|
})) : /*#__PURE__*/React.createElement(React.Fragment, null, filters !== null ? /*#__PURE__*/React.createElement(Filters, {
|
988
|
-
className: "mt-0 pt-0",
|
989
982
|
value: query,
|
990
983
|
clearValue: types !== null ? queryWithoutTypes : null,
|
991
984
|
filters: finalFilters,
|
@@ -994,12 +987,12 @@ function MediasBrowser(_ref) {
|
|
994
987
|
theme: theme
|
995
988
|
}, buttons !== null ? /*#__PURE__*/React.createElement(Buttons, {
|
996
989
|
items: buttons,
|
997
|
-
className:
|
990
|
+
className: buttonsClassName
|
998
991
|
}) : null) : null, filters === null && buttons !== null ? /*#__PURE__*/React.createElement("div", {
|
999
992
|
className: "mt-2 mb-2"
|
1000
993
|
}, buttons !== null ? /*#__PURE__*/React.createElement(Buttons, {
|
1001
994
|
items: buttons,
|
1002
|
-
className:
|
995
|
+
className: buttonsClassName
|
1003
996
|
}) : null) : null, /*#__PURE__*/React.createElement("div", {
|
1004
997
|
className: classNames(['d-flex', 'mt-1', 'mb-3', {
|
1005
998
|
'justify-content-between': hasLayouts,
|
@@ -1026,29 +1019,28 @@ function MediasBrowser(_ref) {
|
|
1026
1019
|
className: 'd-flex w-100',
|
1027
1020
|
cardClassName: 'flex-grow-1',
|
1028
1021
|
vertical: true,
|
1029
|
-
selectable: onSelectItem !== null,
|
1030
1022
|
onClickDescription: function onClickDescription(it) {
|
1031
1023
|
onOpenMedia(it);
|
1032
1024
|
}
|
1033
|
-
}
|
1034
|
-
|
1035
|
-
items: items || [],
|
1036
|
-
loading: loading,
|
1037
|
-
onSelectItem: onSelectItem !== null ? onSelectItem : function (it) {
|
1025
|
+
},
|
1026
|
+
onSelectItem: function onSelectItem(it) {
|
1038
1027
|
return onOpenMedia(it);
|
1039
1028
|
}
|
1029
|
+
}, tableProps, {
|
1030
|
+
items: finalItems || [],
|
1031
|
+
loading: loading
|
1040
1032
|
})) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, Object.assign({
|
1041
1033
|
theme: theme,
|
1042
1034
|
columns: columns,
|
1043
1035
|
displayPlaceholder: /*#__PURE__*/React.createElement("span", {
|
1044
1036
|
className: "text-secondary text-opacity-75"
|
1045
|
-
}, "\u2014")
|
1037
|
+
}, "\u2014"),
|
1038
|
+
onSelectItem: function onSelectItem(it) {
|
1039
|
+
return onOpenMedia(it);
|
1040
|
+
}
|
1046
1041
|
}, tableProps, {
|
1047
|
-
items:
|
1042
|
+
items: finalItems,
|
1048
1043
|
loading: loading,
|
1049
|
-
onSelectItem: onSelectItem !== null ? onSelectItem : function (it) {
|
1050
|
-
return onOpenMedia(it);
|
1051
|
-
},
|
1052
1044
|
actionsProps: {
|
1053
1045
|
getEditPropsFromItem: function getEditPropsFromItem(it) {
|
1054
1046
|
return {
|
@@ -1104,60 +1096,47 @@ function MediasPicker(_ref) {
|
|
1104
1096
|
tableProps = _ref.tableProps,
|
1105
1097
|
className = _ref.className,
|
1106
1098
|
props = _objectWithoutProperties(_ref, _excluded$4);
|
1099
|
+
// For selection only
|
1107
1100
|
var _useState = useState(initialItems),
|
1108
1101
|
_useState2 = _slicedToArray(_useState, 2),
|
1109
|
-
|
1102
|
+
currentItems = _useState2[0],
|
1110
1103
|
setItems = _useState2[1];
|
1111
1104
|
var onItemsChange = useCallback(function (pageItems) {
|
1112
1105
|
setItems(pageItems);
|
1113
1106
|
}, [setItems]);
|
1114
|
-
var disabled = initialItems === null || initialItems.length < 1;
|
1115
1107
|
var _useMediasForm = useMediasForm(),
|
1116
1108
|
currentMedia = _useMediasForm.media;
|
1117
1109
|
var _useItemSelection = useItemSelection({
|
1118
|
-
|
1110
|
+
currentItems: currentItems,
|
1119
1111
|
selectedItems: initialSelectedItems,
|
1120
1112
|
onSelectionChange: onChange,
|
1121
1113
|
multipleSelection: multiple
|
1122
1114
|
}),
|
1123
1115
|
onSelectItem = _useItemSelection.onSelectItem,
|
1124
|
-
onSelectItems = _useItemSelection.onSelectItems,
|
1125
1116
|
onSelectPage = _useItemSelection.onSelectPage,
|
1126
1117
|
onClearSelected = _useItemSelection.onClearSelected,
|
1127
1118
|
pageSelected = _useItemSelection.pageSelected,
|
1128
1119
|
selectedCount = _useItemSelection.selectedCount,
|
1129
1120
|
selectedItems = _useItemSelection.selectedItems;
|
1121
|
+
var disabled = currentItems === null || currentItems.length < 1;
|
1130
1122
|
var onConfirmSelection = useCallback(function () {
|
1131
1123
|
if (onConfirm !== null) {
|
1132
1124
|
onConfirm(selectedItems);
|
1133
1125
|
}
|
1134
1126
|
}, [selectedItems, onConfirm]);
|
1135
|
-
|
1136
|
-
// const finalUploadButton = useMemo(
|
1137
|
-
// () => ({
|
1138
|
-
// ...(uploadButton || null),
|
1139
|
-
// ...(types !== null ? { types } : null),
|
1140
|
-
// allowMultipleUploads: multiple,
|
1141
|
-
// maxNumberOfFiles: multiple ? 10 : 0,
|
1142
|
-
// value: selectedItems,
|
1143
|
-
// }),
|
1144
|
-
// [uploadButton, selectedItems, multiple],
|
1145
|
-
// );
|
1146
|
-
|
1147
1127
|
return /*#__PURE__*/React.createElement("div", {
|
1148
1128
|
className: className
|
1149
1129
|
}, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
|
1150
1130
|
tableProps: _objectSpread({
|
1151
|
-
selectable:
|
1131
|
+
selectable: true,
|
1152
1132
|
multipleSelection: multiple,
|
1153
1133
|
onSelectItem: onSelectItem,
|
1154
1134
|
onSelectPage: onSelectPage,
|
1155
1135
|
selectedItems: selectedItems,
|
1156
1136
|
pageSelected: pageSelected
|
1157
|
-
}, tableProps)
|
1158
|
-
items:
|
1159
|
-
|
1160
|
-
onSelectItems: onSelectItems,
|
1137
|
+
}, tableProps)
|
1138
|
+
// items={initialItems} // TODO: fix useItems if using this
|
1139
|
+
,
|
1161
1140
|
onItemsChange: onItemsChange,
|
1162
1141
|
selectedCount: selectedCount,
|
1163
1142
|
onClearSelected: onClearSelected,
|
package/lib/index.js
CHANGED
@@ -11,10 +11,12 @@ var hooks = require('@panneau/core/hooks');
|
|
11
11
|
var Button = require('@panneau/element-button');
|
12
12
|
var Form = require('@panneau/element-form');
|
13
13
|
var FormStatus = require('@panneau/element-form-status');
|
14
|
+
var ImageDisplay = require('@panneau/display-image');
|
14
15
|
var MediaPlayer = require('@panneau/element-media-player');
|
15
|
-
var
|
16
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
16
17
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
17
18
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
19
|
+
var uniqBy = require('lodash/uniqBy');
|
18
20
|
var core = require('@panneau/core');
|
19
21
|
var Buttons = require('@panneau/element-buttons');
|
20
22
|
var Grid = require('@panneau/element-grid');
|
@@ -24,7 +26,6 @@ var Pagination = require('@panneau/element-pagination');
|
|
24
26
|
var Table = require('@panneau/element-table');
|
25
27
|
var Filters = require('@panneau/filter-filters');
|
26
28
|
var data = require('@panneau/data');
|
27
|
-
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
28
29
|
|
29
30
|
/* eslint-disable react/jsx-props-no-spreading */
|
30
31
|
var MediasApiContext = /*#__PURE__*/React.createContext(null);
|
@@ -216,22 +217,18 @@ function MediaFrame(_ref) {
|
|
216
217
|
setShowPlayer(!showPlayer);
|
217
218
|
}, [showPlayer, setShowPlayer]);
|
218
219
|
return /*#__PURE__*/React.createElement("div", {
|
219
|
-
className: classNames([
|
220
|
+
className: classNames([styles.mediaFrame, 'position-relative', 'd-flex', 'flex-grow-1', 'w-100', 'mw-100', _defineProperty({}, className, className != null)])
|
220
221
|
}, showPlayer ? /*#__PURE__*/React.createElement(MediaPlayer, {
|
221
222
|
value: value,
|
222
223
|
width: "100%"
|
223
|
-
}) : /*#__PURE__*/React.createElement(
|
224
|
+
}) : /*#__PURE__*/React.createElement(ImageDisplay, {
|
225
|
+
className: "w-100",
|
224
226
|
value: value,
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
theme: "secondary",
|
231
|
-
onClick: onClick,
|
232
|
-
icon: "play-fill",
|
233
|
-
size: "lg"
|
234
|
-
}) : null)));
|
227
|
+
maxWidth: "100%",
|
228
|
+
maxHeight: "100%",
|
229
|
+
withoutZoom: true,
|
230
|
+
onClick: type === 'video' || type === 'audio' ? onClick : null
|
231
|
+
}));
|
235
232
|
}
|
236
233
|
MediaFrame.propTypes = propTypes$8;
|
237
234
|
MediaFrame.defaultProps = defaultProps$8;
|
@@ -777,10 +774,8 @@ var _excluded$5 = ["page", "count"],
|
|
777
774
|
_excluded2 = ["types"];
|
778
775
|
var propTypes$5 = {
|
779
776
|
items: core.PropTypes.medias,
|
777
|
+
extraItems: core.PropTypes.medias,
|
780
778
|
types: PropTypes.arrayOf(PropTypes.string),
|
781
|
-
// uploadButton: PropTypes.shape({
|
782
|
-
// value: PropTypes.oneOfType([PanneauPropTypes.medias, PanneauPropTypes.media]),
|
783
|
-
// }),
|
784
779
|
buttons: core.PropTypes.buttons,
|
785
780
|
filters: core.PropTypes.filters,
|
786
781
|
columns: core.PropTypes.tableColumns,
|
@@ -791,16 +786,16 @@ var propTypes$5 = {
|
|
791
786
|
layouts: PropTypes.arrayOf(PropTypes.shape({})),
|
792
787
|
theme: PropTypes.string,
|
793
788
|
tableProps: PropTypes.bool,
|
794
|
-
onSelectItem: PropTypes.func,
|
795
|
-
onSelectItems: PropTypes.func,
|
796
789
|
onItemsChange: PropTypes.func,
|
797
790
|
onLayoutChange: PropTypes.func,
|
798
791
|
selectedCount: PropTypes.number,
|
799
792
|
onClearSelected: PropTypes.func,
|
800
|
-
className: PropTypes.string
|
793
|
+
className: PropTypes.string,
|
794
|
+
buttonsClassName: PropTypes.string
|
801
795
|
};
|
802
796
|
var defaultProps$5 = {
|
803
797
|
items: null,
|
798
|
+
extraItems: null,
|
804
799
|
types: null,
|
805
800
|
buttons: null,
|
806
801
|
filters: defaultFilters,
|
@@ -822,16 +817,16 @@ var defaultProps$5 = {
|
|
822
817
|
}],
|
823
818
|
theme: null,
|
824
819
|
tableProps: null,
|
825
|
-
onSelectItem: null,
|
826
|
-
onSelectItems: null,
|
827
820
|
onItemsChange: null,
|
828
821
|
onLayoutChange: null,
|
829
822
|
selectedCount: null,
|
830
823
|
onClearSelected: null,
|
831
|
-
className: null
|
824
|
+
className: null,
|
825
|
+
buttonsClassName: null
|
832
826
|
};
|
833
827
|
function MediasBrowser(_ref) {
|
834
828
|
var initialItems = _ref.items,
|
829
|
+
extraItems = _ref.extraItems,
|
835
830
|
types = _ref.types,
|
836
831
|
baseUrl = _ref.baseUrl,
|
837
832
|
buttons = _ref.buttons,
|
@@ -843,13 +838,12 @@ function MediasBrowser(_ref) {
|
|
843
838
|
layouts = _ref.layouts,
|
844
839
|
theme = _ref.theme,
|
845
840
|
tableProps = _ref.tableProps,
|
846
|
-
onSelectItem = _ref.onSelectItem,
|
847
|
-
onSelectItems = _ref.onSelectItems,
|
848
841
|
onItemsChange = _ref.onItemsChange,
|
849
842
|
onLayoutChange = _ref.onLayoutChange,
|
850
843
|
selectedCount = _ref.selectedCount,
|
851
844
|
onClearSelected = _ref.onClearSelected,
|
852
|
-
className = _ref.className
|
845
|
+
className = _ref.className,
|
846
|
+
buttonsClassName = _ref.buttonsClassName;
|
853
847
|
var _useState = React.useState(initialItems || null),
|
854
848
|
_useState2 = _slicedToArray(_useState, 1),
|
855
849
|
baseItems = _useState2[0];
|
@@ -927,13 +921,6 @@ function MediasBrowser(_ref) {
|
|
927
921
|
var onCloseMedia = React.useCallback(function () {
|
928
922
|
setCurrentMedia(null);
|
929
923
|
}, [setCurrentMedia]);
|
930
|
-
|
931
|
-
// TODO: context for this?
|
932
|
-
React.useCallback(function () {
|
933
|
-
var media = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
934
|
-
onSelectItems(media);
|
935
|
-
onQueryReset();
|
936
|
-
}, [setCurrentMedia, onQueryReset, onSelectItems]);
|
937
924
|
var onSaveMedia = React.useCallback(function () {
|
938
925
|
setCurrentMedia(null);
|
939
926
|
onQueryReset();
|
@@ -965,13 +952,20 @@ function MediasBrowser(_ref) {
|
|
965
952
|
}
|
966
953
|
return filters;
|
967
954
|
}, [filters, types]);
|
955
|
+
var finalItems = React.useMemo(function () {
|
956
|
+
if (page === 1 && extraItems !== null) {
|
957
|
+
return uniqBy([].concat(_toConsumableArray(extraItems), _toConsumableArray(items || [])), function (it) {
|
958
|
+
return it === null || it === void 0 ? void 0 : it.id;
|
959
|
+
});
|
960
|
+
}
|
961
|
+
return items;
|
962
|
+
}, [items, page, extraItems]);
|
968
963
|
return /*#__PURE__*/React.createElement("div", {
|
969
964
|
className: classNames([styles.container, className])
|
970
965
|
}, currentMedia !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
971
966
|
className: "mt-2 mb-4"
|
972
967
|
}, /*#__PURE__*/React.createElement(Button, {
|
973
968
|
theme: "primary",
|
974
|
-
outline: true,
|
975
969
|
onClick: onCloseMedia,
|
976
970
|
icon: "arrow-left"
|
977
971
|
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
@@ -987,7 +981,6 @@ function MediasBrowser(_ref) {
|
|
987
981
|
onSave: onSaveMedia,
|
988
982
|
onClose: onCloseMedia
|
989
983
|
})) : /*#__PURE__*/React.createElement(React.Fragment, null, filters !== null ? /*#__PURE__*/React.createElement(Filters, {
|
990
|
-
className: "mt-0 pt-0",
|
991
984
|
value: query,
|
992
985
|
clearValue: types !== null ? queryWithoutTypes : null,
|
993
986
|
filters: finalFilters,
|
@@ -996,12 +989,12 @@ function MediasBrowser(_ref) {
|
|
996
989
|
theme: theme
|
997
990
|
}, buttons !== null ? /*#__PURE__*/React.createElement(Buttons, {
|
998
991
|
items: buttons,
|
999
|
-
className:
|
992
|
+
className: buttonsClassName
|
1000
993
|
}) : null) : null, filters === null && buttons !== null ? /*#__PURE__*/React.createElement("div", {
|
1001
994
|
className: "mt-2 mb-2"
|
1002
995
|
}, buttons !== null ? /*#__PURE__*/React.createElement(Buttons, {
|
1003
996
|
items: buttons,
|
1004
|
-
className:
|
997
|
+
className: buttonsClassName
|
1005
998
|
}) : null) : null, /*#__PURE__*/React.createElement("div", {
|
1006
999
|
className: classNames(['d-flex', 'mt-1', 'mb-3', {
|
1007
1000
|
'justify-content-between': hasLayouts,
|
@@ -1028,29 +1021,28 @@ function MediasBrowser(_ref) {
|
|
1028
1021
|
className: 'd-flex w-100',
|
1029
1022
|
cardClassName: 'flex-grow-1',
|
1030
1023
|
vertical: true,
|
1031
|
-
selectable: onSelectItem !== null,
|
1032
1024
|
onClickDescription: function onClickDescription(it) {
|
1033
1025
|
onOpenMedia(it);
|
1034
1026
|
}
|
1035
|
-
}
|
1036
|
-
|
1037
|
-
items: items || [],
|
1038
|
-
loading: loading,
|
1039
|
-
onSelectItem: onSelectItem !== null ? onSelectItem : function (it) {
|
1027
|
+
},
|
1028
|
+
onSelectItem: function onSelectItem(it) {
|
1040
1029
|
return onOpenMedia(it);
|
1041
1030
|
}
|
1031
|
+
}, tableProps, {
|
1032
|
+
items: finalItems || [],
|
1033
|
+
loading: loading
|
1042
1034
|
})) : null, layout === 'table' ? /*#__PURE__*/React.createElement(Table, Object.assign({
|
1043
1035
|
theme: theme,
|
1044
1036
|
columns: columns,
|
1045
1037
|
displayPlaceholder: /*#__PURE__*/React.createElement("span", {
|
1046
1038
|
className: "text-secondary text-opacity-75"
|
1047
|
-
}, "\u2014")
|
1039
|
+
}, "\u2014"),
|
1040
|
+
onSelectItem: function onSelectItem(it) {
|
1041
|
+
return onOpenMedia(it);
|
1042
|
+
}
|
1048
1043
|
}, tableProps, {
|
1049
|
-
items:
|
1044
|
+
items: finalItems,
|
1050
1045
|
loading: loading,
|
1051
|
-
onSelectItem: onSelectItem !== null ? onSelectItem : function (it) {
|
1052
|
-
return onOpenMedia(it);
|
1053
|
-
},
|
1054
1046
|
actionsProps: {
|
1055
1047
|
getEditPropsFromItem: function getEditPropsFromItem(it) {
|
1056
1048
|
return {
|
@@ -1106,60 +1098,47 @@ function MediasPicker(_ref) {
|
|
1106
1098
|
tableProps = _ref.tableProps,
|
1107
1099
|
className = _ref.className,
|
1108
1100
|
props = _objectWithoutProperties(_ref, _excluded$4);
|
1101
|
+
// For selection only
|
1109
1102
|
var _useState = React.useState(initialItems),
|
1110
1103
|
_useState2 = _slicedToArray(_useState, 2),
|
1111
|
-
|
1104
|
+
currentItems = _useState2[0],
|
1112
1105
|
setItems = _useState2[1];
|
1113
1106
|
var onItemsChange = React.useCallback(function (pageItems) {
|
1114
1107
|
setItems(pageItems);
|
1115
1108
|
}, [setItems]);
|
1116
|
-
var disabled = initialItems === null || initialItems.length < 1;
|
1117
1109
|
var _useMediasForm = useMediasForm(),
|
1118
1110
|
currentMedia = _useMediasForm.media;
|
1119
1111
|
var _useItemSelection = hooks.useItemSelection({
|
1120
|
-
|
1112
|
+
currentItems: currentItems,
|
1121
1113
|
selectedItems: initialSelectedItems,
|
1122
1114
|
onSelectionChange: onChange,
|
1123
1115
|
multipleSelection: multiple
|
1124
1116
|
}),
|
1125
1117
|
onSelectItem = _useItemSelection.onSelectItem,
|
1126
|
-
onSelectItems = _useItemSelection.onSelectItems,
|
1127
1118
|
onSelectPage = _useItemSelection.onSelectPage,
|
1128
1119
|
onClearSelected = _useItemSelection.onClearSelected,
|
1129
1120
|
pageSelected = _useItemSelection.pageSelected,
|
1130
1121
|
selectedCount = _useItemSelection.selectedCount,
|
1131
1122
|
selectedItems = _useItemSelection.selectedItems;
|
1123
|
+
var disabled = currentItems === null || currentItems.length < 1;
|
1132
1124
|
var onConfirmSelection = React.useCallback(function () {
|
1133
1125
|
if (onConfirm !== null) {
|
1134
1126
|
onConfirm(selectedItems);
|
1135
1127
|
}
|
1136
1128
|
}, [selectedItems, onConfirm]);
|
1137
|
-
|
1138
|
-
// const finalUploadButton = useMemo(
|
1139
|
-
// () => ({
|
1140
|
-
// ...(uploadButton || null),
|
1141
|
-
// ...(types !== null ? { types } : null),
|
1142
|
-
// allowMultipleUploads: multiple,
|
1143
|
-
// maxNumberOfFiles: multiple ? 10 : 0,
|
1144
|
-
// value: selectedItems,
|
1145
|
-
// }),
|
1146
|
-
// [uploadButton, selectedItems, multiple],
|
1147
|
-
// );
|
1148
|
-
|
1149
1129
|
return /*#__PURE__*/React.createElement("div", {
|
1150
1130
|
className: className
|
1151
1131
|
}, /*#__PURE__*/React.createElement(MediasBrowser, Object.assign({
|
1152
1132
|
tableProps: _objectSpread({
|
1153
|
-
selectable:
|
1133
|
+
selectable: true,
|
1154
1134
|
multipleSelection: multiple,
|
1155
1135
|
onSelectItem: onSelectItem,
|
1156
1136
|
onSelectPage: onSelectPage,
|
1157
1137
|
selectedItems: selectedItems,
|
1158
1138
|
pageSelected: pageSelected
|
1159
|
-
}, tableProps)
|
1160
|
-
items:
|
1161
|
-
|
1162
|
-
onSelectItems: onSelectItems,
|
1139
|
+
}, tableProps)
|
1140
|
+
// items={initialItems} // TODO: fix useItems if using this
|
1141
|
+
,
|
1163
1142
|
onItemsChange: onItemsChange,
|
1164
1143
|
selectedCount: selectedCount,
|
1165
1144
|
onClearSelected: onClearSelected,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@panneau/medias",
|
3
|
-
"version": "3.0.
|
3
|
+
"version": "3.0.172",
|
4
4
|
"description": "",
|
5
5
|
"keywords": [
|
6
6
|
"javascript"
|
@@ -48,15 +48,15 @@
|
|
48
48
|
"@babel/runtime": "^7.12.5",
|
49
49
|
"@panneau/core": "^3.0.169",
|
50
50
|
"@panneau/data": "^3.0.169",
|
51
|
+
"@panneau/display-image": "^3.0.172",
|
51
52
|
"@panneau/element-button": "^3.0.169",
|
52
53
|
"@panneau/element-buttons": "^3.0.169",
|
53
54
|
"@panneau/element-form": "^3.0.169",
|
54
55
|
"@panneau/element-form-status": "^3.0.169",
|
55
|
-
"@panneau/element-grid": "^3.0.
|
56
|
+
"@panneau/element-grid": "^3.0.172",
|
56
57
|
"@panneau/element-icon": "^3.0.169",
|
57
|
-
"@panneau/element-media-card": "^3.0.
|
58
|
-
"@panneau/element-media-player": "^3.0.
|
59
|
-
"@panneau/element-media-preview": "^3.0.169",
|
58
|
+
"@panneau/element-media-card": "^3.0.172",
|
59
|
+
"@panneau/element-media-player": "^3.0.172",
|
60
60
|
"@panneau/element-pagination": "^3.0.169",
|
61
61
|
"@panneau/element-table": "^3.0.170",
|
62
62
|
"@panneau/filter-filters": "^3.0.171",
|
@@ -68,5 +68,5 @@
|
|
68
68
|
"publishConfig": {
|
69
69
|
"access": "public"
|
70
70
|
},
|
71
|
-
"gitHead": "
|
71
|
+
"gitHead": "74ada3ded1a27ab2d7008d67790d8431f57c5b0a"
|
72
72
|
}
|