@mirrormedia/lilith-draft-editor 1.1.0-alpha.21 → 1.1.0-alpha.22

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.
@@ -6,12 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.SlideshowEditBlock = SlideshowEditBlock;
7
7
  exports.SlideshowEditBlockV2 = SlideshowEditBlockV2;
8
8
 
9
- var _react = _interopRequireDefault(require("react"));
9
+ var _react = _interopRequireWildcard(require("react"));
10
10
 
11
11
  var _styledComponents = _interopRequireDefault(require("styled-components"));
12
12
 
13
+ var _imageSelector = require("../selector/image-selector");
14
+
13
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
16
 
17
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
+
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+
15
21
  const Image = _styledComponents.default.img`
16
22
  width: 100%;
17
23
  `;
@@ -36,11 +42,24 @@ const Figure = _styledComponents.default.figure`
36
42
  margin-block: unset;
37
43
  margin-inline: unset;
38
44
  margin: 0 10px;
39
- `; // support old version of slideshow without delay propertiy
45
+ `;
46
+ const SlideshowEditButton = _styledComponents.default.span`
47
+ cursor: pointer;
48
+ background-color: white;
49
+ padding: 6px;
50
+ border-radius: 6px;
51
+ `;
40
52
 
41
- function SlideshowEditBlock(entity) {
53
+ // support old version of slideshow without delay propertiy
54
+ function SlideshowEditBlock(props) {
42
55
  var _images$, _images$$resized;
43
56
 
57
+ const {
58
+ block,
59
+ contentState
60
+ } = props;
61
+ const entityKey = block.getEntityAt(0);
62
+ const entity = contentState.getEntity(entityKey);
44
63
  const images = entity.getData();
45
64
  return /*#__PURE__*/_react.default.createElement(Figure, null, /*#__PURE__*/_react.default.createElement(Image, {
46
65
  src: images === null || images === void 0 ? void 0 : (_images$ = images[0]) === null || _images$ === void 0 ? void 0 : (_images$$resized = _images$.resized) === null || _images$$resized === void 0 ? void 0 : _images$$resized.original,
@@ -53,19 +72,79 @@ function SlideshowEditBlock(entity) {
53
72
  } // 202206 latest version of slideshow, support delay property
54
73
 
55
74
 
56
- function SlideshowEditBlockV2(entity) {
75
+ function SlideshowEditBlockV2(props) {
57
76
  var _images$3, _images$3$resized;
58
77
 
78
+ const {
79
+ block,
80
+ blockProps,
81
+ contentState
82
+ } = props;
83
+ const {
84
+ onEditStart,
85
+ onEditFinish
86
+ } = blockProps;
87
+ const entityKey = block.getEntityAt(0);
88
+ const entity = contentState.getEntity(entityKey);
59
89
  const {
60
90
  images,
61
91
  delay
62
92
  } = entity.getData();
63
- return /*#__PURE__*/_react.default.createElement(Figure, null, /*#__PURE__*/_react.default.createElement(Image, {
93
+ const initialSelected = images.map(image => ({
94
+ desc: image.desc,
95
+ image: {
96
+ id: image.id,
97
+ name: image.name,
98
+ imageFile: image.imageFile,
99
+ resized: image.resized,
100
+ resizedWebp: image.resizedWebp
101
+ }
102
+ }));
103
+ const [toShowImageSelector, setToShowImageSelector] = (0, _react.useState)(false);
104
+
105
+ const onImageSelectorChange = (selected, align, delay) => {
106
+ if (selected.length === 0) {
107
+ onEditFinish({});
108
+ } else {
109
+ onEditFinish({
110
+ entityKey,
111
+ entityData: {
112
+ alignment: align,
113
+ delay,
114
+ images: selected.map(ele => {
115
+ return { ...(ele === null || ele === void 0 ? void 0 : ele.image),
116
+ desc: ele === null || ele === void 0 ? void 0 : ele.desc
117
+ };
118
+ })
119
+ }
120
+ });
121
+ }
122
+
123
+ setToShowImageSelector(false);
124
+ };
125
+
126
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, toShowImageSelector && /*#__PURE__*/_react.default.createElement(_imageSelector.ImageSelector, {
127
+ onChange: onImageSelectorChange,
128
+ enableCaption: true,
129
+ enableDelay: true,
130
+ enableMultiSelect: true,
131
+ initialSelected: initialSelected,
132
+ initialDelay: delay
133
+ }), /*#__PURE__*/_react.default.createElement(Figure, null, /*#__PURE__*/_react.default.createElement(Image, {
64
134
  src: images === null || images === void 0 ? void 0 : (_images$3 = images[0]) === null || _images$3 === void 0 ? void 0 : (_images$3$resized = _images$3.resized) === null || _images$3$resized === void 0 ? void 0 : _images$3$resized.original,
65
135
  onError: e => {
66
136
  var _images$4, _images$4$imageFile;
67
137
 
68
138
  return e.currentTarget.src = images === null || images === void 0 ? void 0 : (_images$4 = images[0]) === null || _images$4 === void 0 ? void 0 : (_images$4$imageFile = _images$4.imageFile) === null || _images$4$imageFile === void 0 ? void 0 : _images$4$imageFile.url;
69
139
  }
70
- }), /*#__PURE__*/_react.default.createElement(SlideshowCount, null, /*#__PURE__*/_react.default.createElement("div", null, "+", images.length), delay && /*#__PURE__*/_react.default.createElement("div", null, `${delay}s`)));
140
+ }), /*#__PURE__*/_react.default.createElement(SlideshowCount, null, /*#__PURE__*/_react.default.createElement("div", null, "+", images.length), delay && /*#__PURE__*/_react.default.createElement("div", null, `${delay}s`))), /*#__PURE__*/_react.default.createElement(SlideshowEditButton, {
141
+ onClick: () => {
142
+ // call `onEditStart` prop as we are trying to update the BGImage entity
143
+ onEditStart(); // open `BGImageInput`
144
+
145
+ setToShowImageSelector(true);
146
+ }
147
+ }, /*#__PURE__*/_react.default.createElement("i", {
148
+ className: "fa-solid fa-pen"
149
+ }), /*#__PURE__*/_react.default.createElement("span", null, "Modify")));
71
150
  }
@@ -55,12 +55,12 @@ const AtomicBlock = props => {
55
55
 
56
56
  case 'slideshow':
57
57
  {
58
- return (0, _slideshowBlock.SlideshowEditBlock)(entity);
58
+ return (0, _slideshowBlock.SlideshowEditBlock)(props);
59
59
  }
60
60
 
61
61
  case 'slideshow-v2':
62
62
  {
63
- return (0, _slideshowBlock.SlideshowEditBlockV2)(entity);
63
+ return (0, _slideshowBlock.SlideshowEditBlockV2)(props);
64
64
  }
65
65
 
66
66
  case 'EMBEDDEDCODE':
@@ -130,7 +130,7 @@ function ImageGrids(props) {
130
130
  return /*#__PURE__*/_react.default.createElement(ImageGridsWrapper, null, images.map(image => {
131
131
  return /*#__PURE__*/_react.default.createElement(ImageGrid, {
132
132
  key: image.id,
133
- isSelected: selected === null || selected === void 0 ? void 0 : selected.includes(image),
133
+ isSelected: !!(selected !== null && selected !== void 0 && selected.find(selectedImage => selectedImage.id === image.id)),
134
134
  onSelect: () => onSelect(image),
135
135
  image: image
136
136
  });
@@ -258,7 +258,8 @@ function ImageSelector(props) {
258
258
  enableDelay = false,
259
259
  onChange,
260
260
  initialSelected = [],
261
- initialAlign
261
+ initialAlign,
262
+ initialDelay
262
263
  } = props;
263
264
  const [queryImages, {
264
265
  loading,
@@ -274,7 +275,7 @@ function ImageSelector(props) {
274
275
 
275
276
  const [searchText, setSearchText] = (0, _react.useState)('');
276
277
  const [selected, setSelected] = (0, _react.useState)(initialSelected);
277
- const [delay, setDelay] = (0, _react.useState)('5');
278
+ const [delay, setDelay] = (0, _react.useState)(initialDelay ?? '5');
278
279
  const [align, setAlign] = (0, _react.useState)(initialAlign);
279
280
  const contentWrapperRef = (0, _react.useRef)();
280
281
  const pageSize = 6;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirrormedia/lilith-draft-editor",
3
- "version": "1.1.0-alpha.21",
3
+ "version": "1.1.0-alpha.22",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -23,7 +23,7 @@
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
25
  "draft-js": "^0.11.7",
26
- "@mirrormedia/lilith-draft-renderer": "1.3.0-alpha.3"
26
+ "@mirrormedia/lilith-draft-renderer": "1.3.0-alpha.5"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "react": "18.2.0",