@micromag/screen-share 0.3.251 → 0.3.262

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.
@@ -1 +1 @@
1
- .micromag-screen-share-container{position:relative;width:100%;height:100%;overflow:hidden}.micromag-screen-share-disabled.micromag-screen-share-container{overflow:hidden;pointer-events:none}.micromag-screen-share-hidden.micromag-screen-share-container{display:none;visibility:hidden}.micromag-screen-share-placeholder.micromag-screen-share-container .micromag-screen-share-content{position:relative;padding:6px}.micromag-screen-share-emptyHeading,.micromag-screen-share-emptyOptions{margin:5px auto;border:2px dashed #343434;color:#343434}.micromag-screen-share-layout{overflow-x:hidden;overflow-y:auto;padding:10px}.micromag-screen-share-shareOptions{margin-top:10px}.micromag-screen-share-shareOptions.micromag-screen-share-isCentered{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.micromag-screen-share-shareButton{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.micromag-screen-share-emptyHeading,.micromag-screen-share-emptyOptions{width:100%;margin:10px auto;padding:10px}.micromag-screen-share-emptyOptions{padding:40px}
1
+ .micromag-screen-share-container .micromag-screen-share-background{position:absolute;top:0;left:0;width:100%;height:100%}.micromag-screen-share-container{position:relative;width:100%;height:100%;overflow:hidden}.micromag-screen-share-disabled.micromag-screen-share-container{overflow:hidden;pointer-events:none}.micromag-screen-share-hidden.micromag-screen-share-container{display:none;visibility:hidden}.micromag-screen-share-placeholder.micromag-screen-share-container .micromag-screen-share-content{position:relative;padding:6px}.micromag-screen-share-emptyHeading,.micromag-screen-share-emptyOptions{margin:5px auto;border:2px dashed #343434;color:#343434}.micromag-screen-share-container .micromag-screen-share-background{z-index:0}.micromag-screen-share-container .micromag-screen-share-content{z-index:1}.micromag-screen-share-layout{overflow-x:hidden;overflow-y:auto;padding:10px}.micromag-screen-share-shareOptions{margin-top:10px}.micromag-screen-share-shareOptions.micromag-screen-share-isCentered{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.micromag-screen-share-shareButton{display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.micromag-screen-share-emptyHeading,.micromag-screen-share-emptyOptions{width:100%;margin:10px auto;padding:10px}.micromag-screen-share-emptyOptions{padding:40px}
package/es/index.js CHANGED
@@ -17,7 +17,7 @@ import ShareOptions from '@micromag/element-share-options';
17
17
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
18
18
  import { Heading1, Text, Container as Container$1 } from '@micromag/transforms/apple-news';
19
19
 
20
- var styles = {"container":"micromag-screen-share-container","disabled":"micromag-screen-share-disabled","hidden":"micromag-screen-share-hidden","placeholder":"micromag-screen-share-placeholder","content":"micromag-screen-share-content","emptyHeading":"micromag-screen-share-emptyHeading","emptyOptions":"micromag-screen-share-emptyOptions","layout":"micromag-screen-share-layout","shareOptions":"micromag-screen-share-shareOptions","isCentered":"micromag-screen-share-isCentered","shareButton":"micromag-screen-share-shareButton"};
20
+ var styles = {"container":"micromag-screen-share-container","background":"micromag-screen-share-background","disabled":"micromag-screen-share-disabled","hidden":"micromag-screen-share-hidden","placeholder":"micromag-screen-share-placeholder","content":"micromag-screen-share-content","emptyHeading":"micromag-screen-share-emptyHeading","emptyOptions":"micromag-screen-share-emptyOptions","layout":"micromag-screen-share-layout","shareOptions":"micromag-screen-share-shareOptions","isCentered":"micromag-screen-share-isCentered","shareButton":"micromag-screen-share-shareButton"};
21
21
 
22
22
  var propTypes = {
23
23
  layout: PropTypes.oneOf(['top', 'middle', 'bottom']),
@@ -30,6 +30,8 @@ var propTypes = {
30
30
  spacing: PropTypes.number,
31
31
  background: PropTypes$1.backgroundElement,
32
32
  callToAction: PropTypes$1.callToAction,
33
+ id: PropTypes.string,
34
+ index: PropTypes.number,
33
35
  current: PropTypes.bool,
34
36
  active: PropTypes.bool,
35
37
  transitions: PropTypes$1.transitions,
@@ -47,6 +49,8 @@ var defaultProps = {
47
49
  spacing: 20,
48
50
  background: null,
49
51
  callToAction: null,
52
+ id: null,
53
+ index: null,
50
54
  current: true,
51
55
  active: true,
52
56
  transitions: null,
@@ -55,7 +59,7 @@ var defaultProps = {
55
59
  };
56
60
 
57
61
  var ShareScreen = function ShareScreen(_ref) {
58
- var _ref3;
62
+ var _ref4;
59
63
 
60
64
  var layout = _ref.layout,
61
65
  heading = _ref.heading,
@@ -67,6 +71,8 @@ var ShareScreen = function ShareScreen(_ref) {
67
71
  spacing = _ref.spacing,
68
72
  background = _ref.background,
69
73
  callToAction = _ref.callToAction,
74
+ id = _ref.id,
75
+ index = _ref.index,
70
76
  current = _ref.current,
71
77
  active = _ref.active,
72
78
  transitions = _ref.transitions,
@@ -104,9 +110,32 @@ var ShareScreen = function ShareScreen(_ref) {
104
110
  var backgroundShouldLoad = current || active;
105
111
  var hasCallToAction = callToAction !== null && callToAction.active === true;
106
112
  var currentUrl = useMemo(function () {
107
- var origin = typeof window !== 'undefined' ? window.location.origin.replace(/\/+$/, '') : '';
108
- return origin;
109
- }, []);
113
+ if (typeof window === 'undefined') return '';
114
+
115
+ var _ref2 = window.location || {},
116
+ _ref2$hostname = _ref2.hostname,
117
+ hostname = _ref2$hostname === void 0 ? null : _ref2$hostname,
118
+ _ref2$pathname = _ref2.pathname,
119
+ pathname = _ref2$pathname === void 0 ? null : _ref2$pathname;
120
+
121
+ var parts = pathname.split('/');
122
+ /**
123
+ * for the last portion of the path, if it's equal to the screen index,
124
+ * or the screen id, then don't include it in the share URL.
125
+ * This makes sure we're not doing a `.replace()` that might remove a part
126
+ * from the slug of the current Micromag.
127
+ * (e.g. if the url is `/10-reasons-to-lorem-ipsum` and the share screen
128
+ * is on screen 10, then a string replace would remove the `/10` from the
129
+ * URL)
130
+ */
131
+
132
+ return parts.reduce(function (acc, part, i) {
133
+ return (// it's equal to the screen index, or equal to the screen ID, or it's empty
134
+ i === parts.length - 1 && parseInt(part, 10) === index || part === id || part === '' ? acc : "".concat(acc, "/").concat(part)
135
+ );
136
+ }, hostname);
137
+ }, [index, id]); // if not share URl was specified, default to the currentURL (without the screen index/id part)
138
+
110
139
  var finalShareURL = shareUrl || currentUrl;
111
140
  var defaultOptions = options !== null ? ['email', 'facebook', 'twitter', 'linkedin', 'whatsapp', 'facebookMessenger'] : [];
112
141
  var selectedOptions = options !== null ? Object.keys(options).reduce(function (acc, key) {
@@ -118,11 +147,10 @@ var ShareScreen = function ShareScreen(_ref) {
118
147
  var onClickShare = useCallback(function (type) {
119
148
  if (trackingEnabled) {
120
149
  trackEvent('click_share', type, {
121
- shareUrl: shareUrl
150
+ shareUrl: finalShareURL
122
151
  });
123
152
  }
124
- }, [trackEvent]); // Create elements
125
-
153
+ }, [trackEvent]);
126
154
  var items = [/*#__PURE__*/React.createElement(ScreenElement, {
127
155
  key: "title",
128
156
  placeholder: "title",
@@ -175,27 +203,19 @@ var ShareScreen = function ShareScreen(_ref) {
175
203
  return el !== null;
176
204
  });
177
205
  return /*#__PURE__*/React.createElement("div", {
178
- className: classNames([styles.container, (_ref3 = {}, _defineProperty(_ref3, className, className !== null), _defineProperty(_ref3, styles.isPlaceholder, isPlaceholder), _ref3)]),
206
+ className: classNames([styles.container, (_ref4 = {}, _defineProperty(_ref4, className, className !== null), _defineProperty(_ref4, styles.isPlaceholder, isPlaceholder), _ref4)]),
179
207
  "data-screen-ready": true
180
- }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {
181
- background: background,
208
+ }, /*#__PURE__*/React.createElement(Container, {
182
209
  width: width,
183
210
  height: height,
184
- resolution: resolution,
185
- playing: backgroundPlaying,
186
- muted: muted,
187
- shouldLoad: backgroundShouldLoad,
188
- mediaRef: mediaRef
189
- }) : null, /*#__PURE__*/React.createElement(Container, {
190
- width: width,
191
- height: height
211
+ className: styles.content
192
212
  }, /*#__PURE__*/React.createElement(Layout, {
193
213
  className: styles.layout,
194
214
  verticalAlign: layout,
195
215
  fullscreen: true,
196
216
  style: !isPlaceholder ? {
197
217
  padding: spacing,
198
- paddingTop: (current && !isPreview ? viewerTopHeight : 0) + spacing,
218
+ paddingTop: (!isPreview ? viewerTopHeight : 0) + spacing,
199
219
  paddingBottom: (current && !isPreview ? viewerBottomHeight : 0) + spacing
200
220
  } : null
201
221
  }, /*#__PURE__*/React.createElement(TransitionsStagger, {
@@ -203,7 +223,18 @@ var ShareScreen = function ShareScreen(_ref) {
203
223
  stagger: transitionStagger,
204
224
  disabled: transitionDisabled,
205
225
  playing: transitionPlaying
206
- }, items))));
226
+ }, items))), !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {
227
+ background: background,
228
+ width: width,
229
+ height: height,
230
+ resolution: resolution,
231
+ playing: backgroundPlaying,
232
+ muted: muted,
233
+ shouldLoad: backgroundShouldLoad,
234
+ mediaRef: mediaRef,
235
+ withoutVideo: isPreview,
236
+ className: styles.background
237
+ }) : null);
207
238
  };
208
239
 
209
240
  ShareScreen.propTypes = propTypes;
package/lib/index.js CHANGED
@@ -36,7 +36,7 @@ var Layout__default = /*#__PURE__*/_interopDefaultLegacy(Layout);
36
36
  var ShareOptions__default = /*#__PURE__*/_interopDefaultLegacy(ShareOptions);
37
37
  var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
38
38
 
39
- var styles = {"container":"micromag-screen-share-container","disabled":"micromag-screen-share-disabled","hidden":"micromag-screen-share-hidden","placeholder":"micromag-screen-share-placeholder","content":"micromag-screen-share-content","emptyHeading":"micromag-screen-share-emptyHeading","emptyOptions":"micromag-screen-share-emptyOptions","layout":"micromag-screen-share-layout","shareOptions":"micromag-screen-share-shareOptions","isCentered":"micromag-screen-share-isCentered","shareButton":"micromag-screen-share-shareButton"};
39
+ var styles = {"container":"micromag-screen-share-container","background":"micromag-screen-share-background","disabled":"micromag-screen-share-disabled","hidden":"micromag-screen-share-hidden","placeholder":"micromag-screen-share-placeholder","content":"micromag-screen-share-content","emptyHeading":"micromag-screen-share-emptyHeading","emptyOptions":"micromag-screen-share-emptyOptions","layout":"micromag-screen-share-layout","shareOptions":"micromag-screen-share-shareOptions","isCentered":"micromag-screen-share-isCentered","shareButton":"micromag-screen-share-shareButton"};
40
40
 
41
41
  var propTypes = {
42
42
  layout: PropTypes__default["default"].oneOf(['top', 'middle', 'bottom']),
@@ -49,6 +49,8 @@ var propTypes = {
49
49
  spacing: PropTypes__default["default"].number,
50
50
  background: core.PropTypes.backgroundElement,
51
51
  callToAction: core.PropTypes.callToAction,
52
+ id: PropTypes__default["default"].string,
53
+ index: PropTypes__default["default"].number,
52
54
  current: PropTypes__default["default"].bool,
53
55
  active: PropTypes__default["default"].bool,
54
56
  transitions: core.PropTypes.transitions,
@@ -66,6 +68,8 @@ var defaultProps = {
66
68
  spacing: 20,
67
69
  background: null,
68
70
  callToAction: null,
71
+ id: null,
72
+ index: null,
69
73
  current: true,
70
74
  active: true,
71
75
  transitions: null,
@@ -74,7 +78,7 @@ var defaultProps = {
74
78
  };
75
79
 
76
80
  var ShareScreen = function ShareScreen(_ref) {
77
- var _ref3;
81
+ var _ref4;
78
82
 
79
83
  var layout = _ref.layout,
80
84
  heading = _ref.heading,
@@ -86,6 +90,8 @@ var ShareScreen = function ShareScreen(_ref) {
86
90
  spacing = _ref.spacing,
87
91
  background = _ref.background,
88
92
  callToAction = _ref.callToAction,
93
+ id = _ref.id,
94
+ index = _ref.index,
89
95
  current = _ref.current,
90
96
  active = _ref.active,
91
97
  transitions = _ref.transitions,
@@ -123,9 +129,32 @@ var ShareScreen = function ShareScreen(_ref) {
123
129
  var backgroundShouldLoad = current || active;
124
130
  var hasCallToAction = callToAction !== null && callToAction.active === true;
125
131
  var currentUrl = React.useMemo(function () {
126
- var origin = typeof window !== 'undefined' ? window.location.origin.replace(/\/+$/, '') : '';
127
- return origin;
128
- }, []);
132
+ if (typeof window === 'undefined') return '';
133
+
134
+ var _ref2 = window.location || {},
135
+ _ref2$hostname = _ref2.hostname,
136
+ hostname = _ref2$hostname === void 0 ? null : _ref2$hostname,
137
+ _ref2$pathname = _ref2.pathname,
138
+ pathname = _ref2$pathname === void 0 ? null : _ref2$pathname;
139
+
140
+ var parts = pathname.split('/');
141
+ /**
142
+ * for the last portion of the path, if it's equal to the screen index,
143
+ * or the screen id, then don't include it in the share URL.
144
+ * This makes sure we're not doing a `.replace()` that might remove a part
145
+ * from the slug of the current Micromag.
146
+ * (e.g. if the url is `/10-reasons-to-lorem-ipsum` and the share screen
147
+ * is on screen 10, then a string replace would remove the `/10` from the
148
+ * URL)
149
+ */
150
+
151
+ return parts.reduce(function (acc, part, i) {
152
+ return (// it's equal to the screen index, or equal to the screen ID, or it's empty
153
+ i === parts.length - 1 && parseInt(part, 10) === index || part === id || part === '' ? acc : "".concat(acc, "/").concat(part)
154
+ );
155
+ }, hostname);
156
+ }, [index, id]); // if not share URl was specified, default to the currentURL (without the screen index/id part)
157
+
129
158
  var finalShareURL = shareUrl || currentUrl;
130
159
  var defaultOptions = options !== null ? ['email', 'facebook', 'twitter', 'linkedin', 'whatsapp', 'facebookMessenger'] : [];
131
160
  var selectedOptions = options !== null ? Object.keys(options).reduce(function (acc, key) {
@@ -137,11 +166,10 @@ var ShareScreen = function ShareScreen(_ref) {
137
166
  var onClickShare = React.useCallback(function (type) {
138
167
  if (trackingEnabled) {
139
168
  trackEvent('click_share', type, {
140
- shareUrl: shareUrl
169
+ shareUrl: finalShareURL
141
170
  });
142
171
  }
143
- }, [trackEvent]); // Create elements
144
-
172
+ }, [trackEvent]);
145
173
  var items = [/*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
146
174
  key: "title",
147
175
  placeholder: "title",
@@ -194,27 +222,19 @@ var ShareScreen = function ShareScreen(_ref) {
194
222
  return el !== null;
195
223
  });
196
224
  return /*#__PURE__*/React__default["default"].createElement("div", {
197
- className: classNames__default["default"]([styles.container, (_ref3 = {}, _defineProperty__default["default"](_ref3, className, className !== null), _defineProperty__default["default"](_ref3, styles.isPlaceholder, isPlaceholder), _ref3)]),
225
+ className: classNames__default["default"]([styles.container, (_ref4 = {}, _defineProperty__default["default"](_ref4, className, className !== null), _defineProperty__default["default"](_ref4, styles.isPlaceholder, isPlaceholder), _ref4)]),
198
226
  "data-screen-ready": true
199
- }, !isPlaceholder ? /*#__PURE__*/React__default["default"].createElement(Background__default["default"], {
200
- background: background,
227
+ }, /*#__PURE__*/React__default["default"].createElement(Container__default["default"], {
201
228
  width: width,
202
229
  height: height,
203
- resolution: resolution,
204
- playing: backgroundPlaying,
205
- muted: muted,
206
- shouldLoad: backgroundShouldLoad,
207
- mediaRef: mediaRef
208
- }) : null, /*#__PURE__*/React__default["default"].createElement(Container__default["default"], {
209
- width: width,
210
- height: height
230
+ className: styles.content
211
231
  }, /*#__PURE__*/React__default["default"].createElement(Layout__default["default"], {
212
232
  className: styles.layout,
213
233
  verticalAlign: layout,
214
234
  fullscreen: true,
215
235
  style: !isPlaceholder ? {
216
236
  padding: spacing,
217
- paddingTop: (current && !isPreview ? viewerTopHeight : 0) + spacing,
237
+ paddingTop: (!isPreview ? viewerTopHeight : 0) + spacing,
218
238
  paddingBottom: (current && !isPreview ? viewerBottomHeight : 0) + spacing
219
239
  } : null
220
240
  }, /*#__PURE__*/React__default["default"].createElement(components.TransitionsStagger, {
@@ -222,7 +242,18 @@ var ShareScreen = function ShareScreen(_ref) {
222
242
  stagger: transitionStagger,
223
243
  disabled: transitionDisabled,
224
244
  playing: transitionPlaying
225
- }, items))));
245
+ }, items))), !isPlaceholder ? /*#__PURE__*/React__default["default"].createElement(Background__default["default"], {
246
+ background: background,
247
+ width: width,
248
+ height: height,
249
+ resolution: resolution,
250
+ playing: backgroundPlaying,
251
+ muted: muted,
252
+ shouldLoad: backgroundShouldLoad,
253
+ mediaRef: mediaRef,
254
+ withoutVideo: isPreview,
255
+ className: styles.background
256
+ }) : null);
226
257
  };
227
258
 
228
259
  ShareScreen.propTypes = propTypes;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/screen-share",
3
- "version": "0.3.251",
3
+ "version": "0.3.262",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -53,15 +53,15 @@
53
53
  },
54
54
  "dependencies": {
55
55
  "@babel/runtime": "^7.13.10",
56
- "@micromag/core": "^0.3.251",
57
- "@micromag/element-background": "^0.3.251",
58
- "@micromag/element-call-to-action": "^0.3.251",
59
- "@micromag/element-container": "^0.3.251",
60
- "@micromag/element-heading": "^0.3.251",
61
- "@micromag/element-layout": "^0.3.251",
62
- "@micromag/element-share-options": "^0.3.251",
63
- "@micromag/element-text": "^0.3.251",
64
- "@micromag/transforms": "^0.3.251",
56
+ "@micromag/core": "^0.3.262",
57
+ "@micromag/element-background": "^0.3.262",
58
+ "@micromag/element-call-to-action": "^0.3.262",
59
+ "@micromag/element-container": "^0.3.262",
60
+ "@micromag/element-heading": "^0.3.262",
61
+ "@micromag/element-layout": "^0.3.262",
62
+ "@micromag/element-share-options": "^0.3.262",
63
+ "@micromag/element-text": "^0.3.262",
64
+ "@micromag/transforms": "^0.3.262",
65
65
  "classnames": "^2.2.6",
66
66
  "lodash": "^4.17.21",
67
67
  "prop-types": "^15.7.2",
@@ -71,5 +71,5 @@
71
71
  "publishConfig": {
72
72
  "access": "public"
73
73
  },
74
- "gitHead": "3b6fb00baaa7f3ab90684a88cbe4c30929b6b27d"
74
+ "gitHead": "2299eaeb150cfdd14b4da321bf9089ab1e6383c2"
75
75
  }