@micromag/media-gallery 0.2.396 → 0.2.397

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.
@@ -2,8 +2,8 @@
2
2
  .micromag-media-gallery-items-gallery-item-container{position:relative;overflow:hidden;cursor:pointer}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-imageButton{-webkit-appearance:none;-moz-appearance:none;appearance:none}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-image{display:block;width:100%;height:0;padding-bottom:75%;background-repeat:no-repeat;background-position:50%;background-size:cover}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-icon{width:16px;height:16px;margin-right:5px}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-footer{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-ms-flex-align:center;align-items:center;border:0;background:rgba(0,0,0,0);color:inherit;text-align:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-footer .micromag-media-gallery-items-gallery-item-label{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-footer small{font-size:.8rem}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-closeIcon,.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-infoButton{position:absolute;top:0;padding:.5rem;color:#fff;-webkit-filter:drop-shadow(0 0 .75rem #1c1c1c);filter:drop-shadow(0 0 .75rem #1C1C1C)}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-closeIcon .micromag-media-gallery-items-gallery-item-icon,.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-infoButton .micromag-media-gallery-items-gallery-item-icon{width:1rem;height:1rem;margin-right:0}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-infoButton{left:0}.micromag-media-gallery-items-gallery-item-container .micromag-media-gallery-items-gallery-item-closeIcon{right:0;pointer-events:none}
3
3
 
4
4
  .micromag-media-gallery-partials-media-metadata-container{position:relative}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-image{display:block;max-width:100%;min-height:200px;max-height:40vh;margin:0 auto}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-video{position:relative;height:40vh;min-height:200px;background-color:#1c1c1c}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-video .micromag-media-gallery-partials-media-metadata-player{position:absolute;top:0;left:0;width:100%;height:100%}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-audio{position:absolute;bottom:0;width:100%}.micromag-media-gallery-partials-media-metadata-container .micromag-media-gallery-partials-media-metadata-audio .micromag-media-gallery-partials-media-metadata-player{display:block;margin:0 auto}
5
- .micromag-media-gallery-partials-navbar-container{position:relative;padding:.5rem}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-inner{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%}
5
+ .micromag-media-gallery-partials-navbar-container{position:relative;padding:.5rem}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-inner{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-mediaPreview{width:25%}.micromag-media-gallery-partials-navbar-container .micromag-media-gallery-partials-navbar-mediaPreview img{width:100%}
6
6
  .micromag-media-gallery-forms-dropdown-section-container .micromag-media-gallery-forms-dropdown-section-dropdownToggle{display:inline-block;position:relative;padding:0;border:0;background:rgba(0,0,0,0);color:inherit;font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.micromag-media-gallery-forms-dropdown-section-container{position:relative;padding-top:5px}.micromag-media-gallery-forms-dropdown-section-container .micromag-media-gallery-forms-dropdown-section-label{display:inline-block;padding-right:5px;font-weight:400}.micromag-media-gallery-forms-dropdown-section-container .micromag-media-gallery-forms-dropdown-section-dropdownToggle{font-weight:700}
7
- .micromag-media-gallery-forms-search-filters-container{position:absolute;z-index:1;right:0;left:0;width:100%;padding:0 15px;overflow:hidden}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-section{border-bottom:1px solid #adadad}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-section:last-child{border-bottom:0}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-title{color:#adadad;font-size:.7875rem;font-weight:600;text-transform:uppercase}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-tags{overflow-x:auto}
7
+ .micromag-media-gallery-forms-search-filters-container{position:absolute;z-index:1;right:0;left:0;width:100%;padding:0 15px;overflow:hidden}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-closeBtn{position:absolute;right:24px}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-section{border-bottom:1px solid #adadad}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-section:last-child{border-bottom:0}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-title{color:#adadad;font-size:.7875rem;font-weight:600;text-transform:uppercase}.micromag-media-gallery-forms-search-filters-container .micromag-media-gallery-forms-search-filters-tags{overflow-x:auto}
8
8
  .micromag-media-gallery-buttons-close-container{display:inline-block;position:relative;padding:0;border:0;background:rgba(0,0,0,0);color:inherit;font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}
9
- .micromag-media-gallery-partials-active-filters-container{padding:10px 0}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-heading{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-title{color:#adadad;font-size:.7875rem;font-weight:600;text-transform:uppercase}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-resetButton{margin-left:5px;outline:none;font-size:.7875rem}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-activeTag{margin-top:5px;margin-right:5px}
9
+ .micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-heading{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-title{color:#adadad;font-size:.7875rem;font-weight:600;text-transform:uppercase}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-resetButton{margin-left:5px;outline:none;font-size:.7875rem}.micromag-media-gallery-partials-active-filters-container .micromag-media-gallery-partials-active-filters-activeTag{margin-top:5px;margin-right:5px}
package/es/index.js CHANGED
@@ -3,14 +3,14 @@ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
3
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
4
4
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
5
  import { PropTypes } from '@micromag/core';
6
- import { Card, Button, Spinner, UploadModal } from '@micromag/core/components';
6
+ import { Card, Button, Media, Spinner, UploadModal } from '@micromag/core/components';
7
7
  import { useFieldComponent, useStory } from '@micromag/core/contexts';
8
8
  import { useMediaUpdate, useMediasRecentSearches, useMediaTags, useMediaAuthors, useMedias, useMediaCreate } from '@micromag/data';
9
9
  import classNames from 'classnames';
10
10
  import PropTypes$1 from 'prop-types';
11
11
  import React, { useMemo, useCallback, useState, useEffect, useRef } from 'react';
12
12
  import { useResizeObserver } from '@micromag/core/hooks';
13
- import { faInfoCircle, faTimesCircle, faPlayCircle, faHeadphonesAlt, faSearch, faTimes, faChevronLeft, faPlus } from '@fortawesome/free-solid-svg-icons';
13
+ import { faInfoCircle, faTimesCircle, faPlayCircle, faHeadphonesAlt, faSearch, faTimes, faPlus, faChevronLeft } from '@fortawesome/free-solid-svg-icons';
14
14
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
15
15
  import uniqBy from 'lodash/uniqBy';
16
16
  import prettyBytes from 'pretty-bytes';
@@ -680,7 +680,7 @@ PropTypes$1.shape({
680
680
  usage: PropTypes$1.arrayOf(PropTypes$1.oneOf(['used', 'unused']))
681
681
  });
682
682
 
683
- var styles$4 = {"container":"micromag-media-gallery-partials-navbar-container","inner":"micromag-media-gallery-partials-navbar-inner"};
683
+ var styles$4 = {"container":"micromag-media-gallery-partials-navbar-container","inner":"micromag-media-gallery-partials-navbar-inner","mediaPreview":"micromag-media-gallery-partials-navbar-mediaPreview"};
684
684
 
685
685
  var styles$3 = {"container":"micromag-media-gallery-forms-dropdown-section-container","dropdownToggle":"micromag-media-gallery-forms-dropdown-section-dropdownToggle","label":"micromag-media-gallery-forms-dropdown-section-label"};
686
686
 
@@ -906,19 +906,21 @@ var TagSection = function TagSection(_ref) {
906
906
  TagSection.propTypes = propTypes$5;
907
907
  TagSection.defaultProps = defaultProps$5;
908
908
 
909
- var styles$2 = {"container":"micromag-media-gallery-forms-search-filters-container","section":"micromag-media-gallery-forms-search-filters-section","title":"micromag-media-gallery-forms-search-filters-title","tags":"micromag-media-gallery-forms-search-filters-tags"};
909
+ var styles$2 = {"container":"micromag-media-gallery-forms-search-filters-container","closeBtn":"micromag-media-gallery-forms-search-filters-closeBtn","section":"micromag-media-gallery-forms-search-filters-section","title":"micromag-media-gallery-forms-search-filters-title","tags":"micromag-media-gallery-forms-search-filters-tags"};
910
910
 
911
911
  var propTypes$4 = {
912
912
  filters: PropTypes$1.object,
913
913
  // eslint-disable-line
914
914
  sections: PropTypes$1.arrayOf(PropTypes$1.object),
915
915
  onChange: PropTypes$1.func,
916
+ onClose: PropTypes$1.func,
916
917
  className: PropTypes$1.string
917
918
  };
918
919
  var defaultProps$4 = {
919
920
  filters: null,
920
921
  sections: [],
921
922
  onChange: null,
923
+ onClose: null,
922
924
  className: null
923
925
  };
924
926
 
@@ -926,7 +928,9 @@ var SearchFilters = function SearchFilters(_ref) {
926
928
  var filters = _ref.filters,
927
929
  sections = _ref.sections,
928
930
  onChange = _ref.onChange,
931
+ onClose = _ref.onClose,
929
932
  className = _ref.className;
933
+ var intl = useIntl();
930
934
  var getActive = useCallback(function (items, sectionFilters) {
931
935
  return items !== null ? items.map(function (it) {
932
936
  return _objectSpread(_objectSpread({}, it), {}, {
@@ -967,7 +971,20 @@ var SearchFilters = function SearchFilters(_ref) {
967
971
  className: classNames([styles$2.container, 'flex-nowrap', 'mt-1', _defineProperty({}, className, className !== null)])
968
972
  }, activeSections.length > 0 ? /*#__PURE__*/React.createElement("div", {
969
973
  className: classNames(['bg-light', 'flex-nowrap', 'text-dark', 'py-1', 'px-3', 'rounded'])
970
- }, activeSections.map(function (_ref3) {
974
+ }, /*#__PURE__*/React.createElement(Button, {
975
+ className: classNames([styles$2.closeBtn, 'py-1', 'px-1', 'text-dark']),
976
+ icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {
977
+ icon: faTimes
978
+ }),
979
+ onClick: onClose,
980
+ title: intl.formatMessage({
981
+ "id": "yCXMzz",
982
+ "defaultMessage": [{
983
+ "type": 0,
984
+ "value": "Close"
985
+ }]
986
+ })
987
+ }), activeSections.map(function (_ref3) {
971
988
  var value = _ref3.value,
972
989
  label = _ref3.label,
973
990
  items = _ref3.items;
@@ -1121,14 +1138,15 @@ ActiveFilters.defaultProps = defaultProps$2;
1121
1138
  var propTypes$1 = {
1122
1139
  filters: filtersValue,
1123
1140
  media: PropTypes.media,
1141
+ selectedMedia: PropTypes.media,
1124
1142
  storyId: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]),
1125
1143
  tags: PropTypes.tags,
1126
1144
  authors: PropTypes.authors,
1127
- withoutTitle: PropTypes$1.bool,
1128
1145
  withoutSource: PropTypes$1.bool,
1129
1146
  withoutType: PropTypes$1.bool,
1130
1147
  onClickAdd: PropTypes$1.func,
1131
- // onClickCancel: PropTypes.func,
1148
+ onClickItem: PropTypes$1.func,
1149
+ // onClickCancel: PropTypes.func, // TODO: still needed?
1132
1150
  onFocusSearch: PropTypes$1.func,
1133
1151
  onFiltersChange: PropTypes$1.func,
1134
1152
  onClickBack: PropTypes$1.func,
@@ -1137,13 +1155,14 @@ var propTypes$1 = {
1137
1155
  var defaultProps$1 = {
1138
1156
  filters: null,
1139
1157
  media: null,
1158
+ selectedMedia: null,
1140
1159
  storyId: null,
1141
1160
  tags: [],
1142
1161
  authors: [],
1143
- withoutTitle: false,
1144
1162
  withoutSource: false,
1145
1163
  withoutType: true,
1146
1164
  onClickAdd: null,
1165
+ onClickItem: null,
1147
1166
  // onClickCancel: null,
1148
1167
  onFocusSearch: null,
1149
1168
  onFiltersChange: null,
@@ -1154,17 +1173,19 @@ var defaultProps$1 = {
1154
1173
  var Navbar = function Navbar(_ref) {
1155
1174
  var filters = _ref.filters,
1156
1175
  media = _ref.media,
1176
+ selectedMedia = _ref.selectedMedia,
1157
1177
  storyId = _ref.storyId,
1158
1178
  tags = _ref.tags,
1159
1179
  authors = _ref.authors,
1160
- withoutTitle = _ref.withoutTitle,
1161
1180
  withoutSource = _ref.withoutSource,
1162
1181
  withoutType = _ref.withoutType,
1163
1182
  className = _ref.className,
1164
1183
  onClickAdd = _ref.onClickAdd,
1184
+ onClickItem = _ref.onClickItem,
1165
1185
  onFocusSearch = _ref.onFocusSearch,
1166
1186
  onFiltersChange = _ref.onFiltersChange,
1167
1187
  onClickBack = _ref.onClickBack;
1188
+ var intl = useIntl();
1168
1189
  var throttle = useRef(null);
1169
1190
 
1170
1191
  var _useState = useState(false),
@@ -1250,25 +1271,61 @@ var Navbar = function Navbar(_ref) {
1250
1271
 
1251
1272
  setOpen(true);
1252
1273
  });
1253
- var onClear = useCallback(function () {
1274
+ var onCloseFilters = useCallback(function () {
1254
1275
  setOpen(false);
1255
1276
  }, [setOpen]);
1256
1277
  var onToggleMenu = useCallback(function () {
1257
1278
  setOpen(!open);
1258
1279
  }, [open, setOpen]);
1259
- var title = !withoutTitle ? /*#__PURE__*/React.createElement(FormattedMessage, {
1260
- id: "JV5hRr",
1261
- defaultMessage: [{
1262
- "type": 0,
1263
- "value": "Media gallery"
1264
- }]
1265
- }) : null;
1266
1280
  return /*#__PURE__*/React.createElement("nav", {
1267
1281
  className: classNames([styles$4.container, 'navbar', _defineProperty({}, className, className !== null)])
1268
1282
  }, /*#__PURE__*/React.createElement("div", {
1269
1283
  className: styles$4.inner
1270
- }, !withoutSource ? /*#__PURE__*/React.createElement("div", {
1271
- className: "d-flex w-100 flex-nowrap justify-content-center"
1284
+ }, /*#__PURE__*/React.createElement("strong", {
1285
+ className: "list-group-item rounded py-1 px-1 navbar-text d-flex align-items-center justify-content-between"
1286
+ }, /*#__PURE__*/React.createElement("div", {
1287
+ className: "d-flex align-items-center"
1288
+ }, selectedMedia !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Media, {
1289
+ className: styles$4.mediaPreview,
1290
+ thumbnail: selectedMedia === null || selectedMedia === void 0 ? void 0 : selectedMedia.thumbnail_url
1291
+ }), /*#__PURE__*/React.createElement("span", {
1292
+ className: "ml-2"
1293
+ }, selectedMedia.name || 'untitled')) : /*#__PURE__*/React.createElement(FormattedMessage, {
1294
+ id: "t9KqNo",
1295
+ defaultMessage: [{
1296
+ "type": 0,
1297
+ "value": "Upload a new image"
1298
+ }]
1299
+ })), selectedMedia === null ? /*#__PURE__*/React.createElement(Button, {
1300
+ theme: "primary",
1301
+ icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {
1302
+ icon: faPlus
1303
+ }),
1304
+ onClick: onClickAdd,
1305
+ title: intl.formatMessage({
1306
+ "id": "Tt4jN1",
1307
+ "defaultMessage": [{
1308
+ "type": 0,
1309
+ "value": "Add"
1310
+ }]
1311
+ })
1312
+ }) : /*#__PURE__*/React.createElement(Button, {
1313
+ theme: "primary",
1314
+ icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {
1315
+ icon: faTimes
1316
+ }),
1317
+ onClick: function onClick() {
1318
+ return onClickItem(selectedMedia);
1319
+ },
1320
+ title: intl.formatMessage({
1321
+ "id": "UG3SXh",
1322
+ "defaultMessage": [{
1323
+ "type": 0,
1324
+ "value": "Remove"
1325
+ }]
1326
+ })
1327
+ })), !withoutSource ? /*#__PURE__*/React.createElement("div", {
1328
+ className: "py-2 d-flex w-100 flex-nowrap"
1272
1329
  }, /*#__PURE__*/React.createElement(DropdownSection, {
1273
1330
  items: sources,
1274
1331
  value: filters.source || null,
@@ -1286,20 +1343,8 @@ var Navbar = function Navbar(_ref) {
1286
1343
  }),
1287
1344
  onClick: onClickBack
1288
1345
  })) : null, /*#__PURE__*/React.createElement("strong", {
1289
- className: "navbar-text mr-auto w-100 d-flex align-items-center justify-content-between"
1290
- }, media !== null ? media.name : title, media === null ? /*#__PURE__*/React.createElement(Button, {
1291
- theme: "primary",
1292
- icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {
1293
- icon: faPlus
1294
- }),
1295
- onClick: onClickAdd
1296
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
1297
- id: "Tt4jN1",
1298
- defaultMessage: [{
1299
- "type": 0,
1300
- "value": "Add"
1301
- }]
1302
- })) : null)), media === null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1346
+ className: "navbar-text mr-auto w-100"
1347
+ }, media !== null ? media.name : null)), media === null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1303
1348
  className: "d-flex w-100 flex-nowrap justify-content-between"
1304
1349
  }, /*#__PURE__*/React.createElement(Search, {
1305
1350
  value: searchValue,
@@ -1307,23 +1352,15 @@ var Navbar = function Navbar(_ref) {
1307
1352
  onFocus: onSearchFocus,
1308
1353
  onClickIcon: onToggleMenu,
1309
1354
  className: classNames(['form-inline'])
1310
- }), /*#__PURE__*/React.createElement("form", {
1311
- className: classNames(['form-inline'])
1312
- }, open ? /*#__PURE__*/React.createElement(Button, {
1313
- className: "ml-2",
1314
- theme: "primary",
1315
- icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {
1316
- icon: faTimes
1317
- }),
1318
- onClick: onClear
1319
- }) : null)), open ? /*#__PURE__*/React.createElement("div", {
1355
+ })), open ? /*#__PURE__*/React.createElement("div", {
1320
1356
  className: "d-flex w-100 my-1 flex-nowrap justify-content-between"
1321
1357
  }, /*#__PURE__*/React.createElement(SearchFilters, {
1322
1358
  filters: filters,
1323
1359
  sections: sections,
1324
- onChange: onFilterChange
1360
+ onChange: onFilterChange,
1361
+ onClose: onCloseFilters
1325
1362
  })) : null) : null, hasFilter && !open && media === null ? /*#__PURE__*/React.createElement("div", {
1326
- className: "d-flex w-100 my-1 flex-nowrap justify-content-between"
1363
+ className: "list-group-item py-2 px-2 d-flex w-100 my-2 flex-nowrap justify-content-between"
1327
1364
  }, /*#__PURE__*/React.createElement(ActiveFilters, {
1328
1365
  filters: filters,
1329
1366
  sections: sections,
@@ -1371,9 +1408,9 @@ var MediaGallery = function MediaGallery(_ref) {
1371
1408
  source = _ref.source,
1372
1409
  isPicker = _ref.isPicker,
1373
1410
  isSmall = _ref.isSmall,
1374
- withoutTitle = _ref.withoutTitle,
1375
- withoutSource = _ref.withoutSource,
1376
- withoutType = _ref.withoutType,
1411
+ withoutTitle = _ref.withoutTitle;
1412
+ _ref.withoutSource;
1413
+ var withoutType = _ref.withoutType,
1377
1414
  initialMedias = _ref.medias,
1378
1415
  selectedMedia = _ref.selectedMedia,
1379
1416
  className = _ref.className,
@@ -1499,12 +1536,15 @@ var MediaGallery = function MediaGallery(_ref) {
1499
1536
  }, /*#__PURE__*/React.createElement(Navbar, {
1500
1537
  filters: filtersValue,
1501
1538
  media: metadataMedia !== null ? metadataMedia : null,
1539
+ selectedMedia: selectedMedia,
1502
1540
  onFiltersChange: onFiltersChange,
1503
1541
  onClickAdd: onClickAdd,
1542
+ onClickItem: onClickItem,
1504
1543
  onClickBack: onClickBack,
1505
1544
  onClickCancel: onClickCancel,
1506
- withoutTitle: withoutTitle,
1507
- withoutSource: withoutSource,
1545
+ withoutTitle: withoutTitle // withoutSource={withoutSource}
1546
+ ,
1547
+ withoutSource: false,
1508
1548
  withoutType: withoutType,
1509
1549
  storyId: storyId,
1510
1550
  authors: authors,
package/lib/index.js CHANGED
@@ -695,7 +695,7 @@ PropTypes__default["default"].shape({
695
695
  usage: PropTypes__default["default"].arrayOf(PropTypes__default["default"].oneOf(['used', 'unused']))
696
696
  });
697
697
 
698
- var styles$4 = {"container":"micromag-media-gallery-partials-navbar-container","inner":"micromag-media-gallery-partials-navbar-inner"};
698
+ var styles$4 = {"container":"micromag-media-gallery-partials-navbar-container","inner":"micromag-media-gallery-partials-navbar-inner","mediaPreview":"micromag-media-gallery-partials-navbar-mediaPreview"};
699
699
 
700
700
  var styles$3 = {"container":"micromag-media-gallery-forms-dropdown-section-container","dropdownToggle":"micromag-media-gallery-forms-dropdown-section-dropdownToggle","label":"micromag-media-gallery-forms-dropdown-section-label"};
701
701
 
@@ -921,19 +921,21 @@ var TagSection = function TagSection(_ref) {
921
921
  TagSection.propTypes = propTypes$5;
922
922
  TagSection.defaultProps = defaultProps$5;
923
923
 
924
- var styles$2 = {"container":"micromag-media-gallery-forms-search-filters-container","section":"micromag-media-gallery-forms-search-filters-section","title":"micromag-media-gallery-forms-search-filters-title","tags":"micromag-media-gallery-forms-search-filters-tags"};
924
+ var styles$2 = {"container":"micromag-media-gallery-forms-search-filters-container","closeBtn":"micromag-media-gallery-forms-search-filters-closeBtn","section":"micromag-media-gallery-forms-search-filters-section","title":"micromag-media-gallery-forms-search-filters-title","tags":"micromag-media-gallery-forms-search-filters-tags"};
925
925
 
926
926
  var propTypes$4 = {
927
927
  filters: PropTypes__default["default"].object,
928
928
  // eslint-disable-line
929
929
  sections: PropTypes__default["default"].arrayOf(PropTypes__default["default"].object),
930
930
  onChange: PropTypes__default["default"].func,
931
+ onClose: PropTypes__default["default"].func,
931
932
  className: PropTypes__default["default"].string
932
933
  };
933
934
  var defaultProps$4 = {
934
935
  filters: null,
935
936
  sections: [],
936
937
  onChange: null,
938
+ onClose: null,
937
939
  className: null
938
940
  };
939
941
 
@@ -941,7 +943,9 @@ var SearchFilters = function SearchFilters(_ref) {
941
943
  var filters = _ref.filters,
942
944
  sections = _ref.sections,
943
945
  onChange = _ref.onChange,
946
+ onClose = _ref.onClose,
944
947
  className = _ref.className;
948
+ var intl = reactIntl.useIntl();
945
949
  var getActive = React.useCallback(function (items, sectionFilters) {
946
950
  return items !== null ? items.map(function (it) {
947
951
  return _objectSpread__default["default"](_objectSpread__default["default"]({}, it), {}, {
@@ -982,7 +986,20 @@ var SearchFilters = function SearchFilters(_ref) {
982
986
  className: classNames__default["default"]([styles$2.container, 'flex-nowrap', 'mt-1', _defineProperty__default["default"]({}, className, className !== null)])
983
987
  }, activeSections.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
984
988
  className: classNames__default["default"](['bg-light', 'flex-nowrap', 'text-dark', 'py-1', 'px-3', 'rounded'])
985
- }, activeSections.map(function (_ref3) {
989
+ }, /*#__PURE__*/React__default["default"].createElement(components.Button, {
990
+ className: classNames__default["default"]([styles$2.closeBtn, 'py-1', 'px-1', 'text-dark']),
991
+ icon: /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
992
+ icon: freeSolidSvgIcons.faTimes
993
+ }),
994
+ onClick: onClose,
995
+ title: intl.formatMessage({
996
+ "id": "yCXMzz",
997
+ "defaultMessage": [{
998
+ "type": 0,
999
+ "value": "Close"
1000
+ }]
1001
+ })
1002
+ }), activeSections.map(function (_ref3) {
986
1003
  var value = _ref3.value,
987
1004
  label = _ref3.label,
988
1005
  items = _ref3.items;
@@ -1136,14 +1153,15 @@ ActiveFilters.defaultProps = defaultProps$2;
1136
1153
  var propTypes$1 = {
1137
1154
  filters: filtersValue,
1138
1155
  media: core.PropTypes.media,
1156
+ selectedMedia: core.PropTypes.media,
1139
1157
  storyId: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
1140
1158
  tags: core.PropTypes.tags,
1141
1159
  authors: core.PropTypes.authors,
1142
- withoutTitle: PropTypes__default["default"].bool,
1143
1160
  withoutSource: PropTypes__default["default"].bool,
1144
1161
  withoutType: PropTypes__default["default"].bool,
1145
1162
  onClickAdd: PropTypes__default["default"].func,
1146
- // onClickCancel: PropTypes.func,
1163
+ onClickItem: PropTypes__default["default"].func,
1164
+ // onClickCancel: PropTypes.func, // TODO: still needed?
1147
1165
  onFocusSearch: PropTypes__default["default"].func,
1148
1166
  onFiltersChange: PropTypes__default["default"].func,
1149
1167
  onClickBack: PropTypes__default["default"].func,
@@ -1152,13 +1170,14 @@ var propTypes$1 = {
1152
1170
  var defaultProps$1 = {
1153
1171
  filters: null,
1154
1172
  media: null,
1173
+ selectedMedia: null,
1155
1174
  storyId: null,
1156
1175
  tags: [],
1157
1176
  authors: [],
1158
- withoutTitle: false,
1159
1177
  withoutSource: false,
1160
1178
  withoutType: true,
1161
1179
  onClickAdd: null,
1180
+ onClickItem: null,
1162
1181
  // onClickCancel: null,
1163
1182
  onFocusSearch: null,
1164
1183
  onFiltersChange: null,
@@ -1169,17 +1188,19 @@ var defaultProps$1 = {
1169
1188
  var Navbar = function Navbar(_ref) {
1170
1189
  var filters = _ref.filters,
1171
1190
  media = _ref.media,
1191
+ selectedMedia = _ref.selectedMedia,
1172
1192
  storyId = _ref.storyId,
1173
1193
  tags = _ref.tags,
1174
1194
  authors = _ref.authors,
1175
- withoutTitle = _ref.withoutTitle,
1176
1195
  withoutSource = _ref.withoutSource,
1177
1196
  withoutType = _ref.withoutType,
1178
1197
  className = _ref.className,
1179
1198
  onClickAdd = _ref.onClickAdd,
1199
+ onClickItem = _ref.onClickItem,
1180
1200
  onFocusSearch = _ref.onFocusSearch,
1181
1201
  onFiltersChange = _ref.onFiltersChange,
1182
1202
  onClickBack = _ref.onClickBack;
1203
+ var intl = reactIntl.useIntl();
1183
1204
  var throttle = React.useRef(null);
1184
1205
 
1185
1206
  var _useState = React.useState(false),
@@ -1265,25 +1286,61 @@ var Navbar = function Navbar(_ref) {
1265
1286
 
1266
1287
  setOpen(true);
1267
1288
  });
1268
- var onClear = React.useCallback(function () {
1289
+ var onCloseFilters = React.useCallback(function () {
1269
1290
  setOpen(false);
1270
1291
  }, [setOpen]);
1271
1292
  var onToggleMenu = React.useCallback(function () {
1272
1293
  setOpen(!open);
1273
1294
  }, [open, setOpen]);
1274
- var title = !withoutTitle ? /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
1275
- id: "JV5hRr",
1276
- defaultMessage: [{
1277
- "type": 0,
1278
- "value": "Media gallery"
1279
- }]
1280
- }) : null;
1281
1295
  return /*#__PURE__*/React__default["default"].createElement("nav", {
1282
1296
  className: classNames__default["default"]([styles$4.container, 'navbar', _defineProperty__default["default"]({}, className, className !== null)])
1283
1297
  }, /*#__PURE__*/React__default["default"].createElement("div", {
1284
1298
  className: styles$4.inner
1285
- }, !withoutSource ? /*#__PURE__*/React__default["default"].createElement("div", {
1286
- className: "d-flex w-100 flex-nowrap justify-content-center"
1299
+ }, /*#__PURE__*/React__default["default"].createElement("strong", {
1300
+ className: "list-group-item rounded py-1 px-1 navbar-text d-flex align-items-center justify-content-between"
1301
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
1302
+ className: "d-flex align-items-center"
1303
+ }, selectedMedia !== null ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(components.Media, {
1304
+ className: styles$4.mediaPreview,
1305
+ thumbnail: selectedMedia === null || selectedMedia === void 0 ? void 0 : selectedMedia.thumbnail_url
1306
+ }), /*#__PURE__*/React__default["default"].createElement("span", {
1307
+ className: "ml-2"
1308
+ }, selectedMedia.name || 'untitled')) : /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
1309
+ id: "t9KqNo",
1310
+ defaultMessage: [{
1311
+ "type": 0,
1312
+ "value": "Upload a new image"
1313
+ }]
1314
+ })), selectedMedia === null ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
1315
+ theme: "primary",
1316
+ icon: /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
1317
+ icon: freeSolidSvgIcons.faPlus
1318
+ }),
1319
+ onClick: onClickAdd,
1320
+ title: intl.formatMessage({
1321
+ "id": "Tt4jN1",
1322
+ "defaultMessage": [{
1323
+ "type": 0,
1324
+ "value": "Add"
1325
+ }]
1326
+ })
1327
+ }) : /*#__PURE__*/React__default["default"].createElement(components.Button, {
1328
+ theme: "primary",
1329
+ icon: /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
1330
+ icon: freeSolidSvgIcons.faTimes
1331
+ }),
1332
+ onClick: function onClick() {
1333
+ return onClickItem(selectedMedia);
1334
+ },
1335
+ title: intl.formatMessage({
1336
+ "id": "UG3SXh",
1337
+ "defaultMessage": [{
1338
+ "type": 0,
1339
+ "value": "Remove"
1340
+ }]
1341
+ })
1342
+ })), !withoutSource ? /*#__PURE__*/React__default["default"].createElement("div", {
1343
+ className: "py-2 d-flex w-100 flex-nowrap"
1287
1344
  }, /*#__PURE__*/React__default["default"].createElement(DropdownSection, {
1288
1345
  items: sources,
1289
1346
  value: filters.source || null,
@@ -1301,20 +1358,8 @@ var Navbar = function Navbar(_ref) {
1301
1358
  }),
1302
1359
  onClick: onClickBack
1303
1360
  })) : null, /*#__PURE__*/React__default["default"].createElement("strong", {
1304
- className: "navbar-text mr-auto w-100 d-flex align-items-center justify-content-between"
1305
- }, media !== null ? media.name : title, media === null ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
1306
- theme: "primary",
1307
- icon: /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
1308
- icon: freeSolidSvgIcons.faPlus
1309
- }),
1310
- onClick: onClickAdd
1311
- }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
1312
- id: "Tt4jN1",
1313
- defaultMessage: [{
1314
- "type": 0,
1315
- "value": "Add"
1316
- }]
1317
- })) : null)), media === null ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
1361
+ className: "navbar-text mr-auto w-100"
1362
+ }, media !== null ? media.name : null)), media === null ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
1318
1363
  className: "d-flex w-100 flex-nowrap justify-content-between"
1319
1364
  }, /*#__PURE__*/React__default["default"].createElement(Search, {
1320
1365
  value: searchValue,
@@ -1322,23 +1367,15 @@ var Navbar = function Navbar(_ref) {
1322
1367
  onFocus: onSearchFocus,
1323
1368
  onClickIcon: onToggleMenu,
1324
1369
  className: classNames__default["default"](['form-inline'])
1325
- }), /*#__PURE__*/React__default["default"].createElement("form", {
1326
- className: classNames__default["default"](['form-inline'])
1327
- }, open ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
1328
- className: "ml-2",
1329
- theme: "primary",
1330
- icon: /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
1331
- icon: freeSolidSvgIcons.faTimes
1332
- }),
1333
- onClick: onClear
1334
- }) : null)), open ? /*#__PURE__*/React__default["default"].createElement("div", {
1370
+ })), open ? /*#__PURE__*/React__default["default"].createElement("div", {
1335
1371
  className: "d-flex w-100 my-1 flex-nowrap justify-content-between"
1336
1372
  }, /*#__PURE__*/React__default["default"].createElement(SearchFilters, {
1337
1373
  filters: filters,
1338
1374
  sections: sections,
1339
- onChange: onFilterChange
1375
+ onChange: onFilterChange,
1376
+ onClose: onCloseFilters
1340
1377
  })) : null) : null, hasFilter && !open && media === null ? /*#__PURE__*/React__default["default"].createElement("div", {
1341
- className: "d-flex w-100 my-1 flex-nowrap justify-content-between"
1378
+ className: "list-group-item py-2 px-2 d-flex w-100 my-2 flex-nowrap justify-content-between"
1342
1379
  }, /*#__PURE__*/React__default["default"].createElement(ActiveFilters, {
1343
1380
  filters: filters,
1344
1381
  sections: sections,
@@ -1386,9 +1423,9 @@ var MediaGallery = function MediaGallery(_ref) {
1386
1423
  source = _ref.source,
1387
1424
  isPicker = _ref.isPicker,
1388
1425
  isSmall = _ref.isSmall,
1389
- withoutTitle = _ref.withoutTitle,
1390
- withoutSource = _ref.withoutSource,
1391
- withoutType = _ref.withoutType,
1426
+ withoutTitle = _ref.withoutTitle;
1427
+ _ref.withoutSource;
1428
+ var withoutType = _ref.withoutType,
1392
1429
  initialMedias = _ref.medias,
1393
1430
  selectedMedia = _ref.selectedMedia,
1394
1431
  className = _ref.className,
@@ -1514,12 +1551,15 @@ var MediaGallery = function MediaGallery(_ref) {
1514
1551
  }, /*#__PURE__*/React__default["default"].createElement(Navbar, {
1515
1552
  filters: filtersValue,
1516
1553
  media: metadataMedia !== null ? metadataMedia : null,
1554
+ selectedMedia: selectedMedia,
1517
1555
  onFiltersChange: onFiltersChange,
1518
1556
  onClickAdd: onClickAdd,
1557
+ onClickItem: onClickItem,
1519
1558
  onClickBack: onClickBack,
1520
1559
  onClickCancel: onClickCancel,
1521
- withoutTitle: withoutTitle,
1522
- withoutSource: withoutSource,
1560
+ withoutTitle: withoutTitle // withoutSource={withoutSource}
1561
+ ,
1562
+ withoutSource: false,
1523
1563
  withoutType: withoutType,
1524
1564
  storyId: storyId,
1525
1565
  authors: authors,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/media-gallery",
3
- "version": "0.2.396",
3
+ "version": "0.2.397",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "gitHead": "480deb93475c6eefcd4c5997b4ce7c9f32e6ff7d"
72
+ "gitHead": "23893b7baf6d53990e52f2a6cb9431c7f53113b5"
73
73
  }