@cntrl-site/sdk-nextjs 1.9.8 → 1.9.9

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.
@@ -0,0 +1,5 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <state>
3
+ <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
4
+ </state>
5
+ </component>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/sdk-nextjs.iml" filepath="$PROJECT_DIR$/.idea/sdk-nextjs.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <excludeFolder url="file://$MODULE_DIR$/temp" />
6
+ <excludeFolder url="file://$MODULE_DIR$/.tmp" />
7
+ <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
+ </content>
9
+ <orderEntry type="inheritedJdk" />
10
+ <orderEntry type="sourceFolder" forTests="false" />
11
+ </component>
12
+ </module>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -38,7 +38,7 @@ const VimeoEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibili
38
38
  const layoutParams = layoutId ? item.layoutParams[layoutId] : null;
39
39
  const [ref, setRef] = (0, react_1.useState)(null);
40
40
  const [imgRef, setImgRef] = (0, react_1.useState)(null);
41
- const [isCoverVisible, setIsCoverVisible] = (0, react_1.useState)(false);
41
+ const [isCoverVisible, setIsCoverVisible] = (0, react_1.useState)(item.commonParams.coverUrl !== null);
42
42
  const layoutValues = [item.area, item.layoutParams];
43
43
  const wrapperStateParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['angle', 'blur', 'opacity']);
44
44
  const frameStateParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['radius']);
@@ -68,6 +68,9 @@ const VimeoEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibili
68
68
  if (layoutParams.play === 'on-click') {
69
69
  setIsCoverVisible(true);
70
70
  }
71
+ if (layoutParams.play === 'auto') {
72
+ setIsCoverVisible(false);
73
+ }
71
74
  vimeoPlayer.on('pause', (e) => {
72
75
  if (e.seconds === 0) {
73
76
  setIsCoverVisible(true);
@@ -117,14 +120,19 @@ const VimeoEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibili
117
120
  });
118
121
  }, [interactionCtrl, vimeoPlayer]);
119
122
  return ((0, jsx_runtime_1.jsxs)(LinkWrapper_1.LinkWrapper, { url: (_e = item.link) === null || _e === void 0 ? void 0 : _e.url, target: (_f = item.link) === null || _f === void 0 ? void 0 : _f.target, children: [(0, jsx_runtime_1.jsxs)("div", { className: `embed-video-wrapper-${item.id}`, ref: setRef, style: Object.assign(Object.assign(Object.assign(Object.assign({}, (opacity !== undefined ? { opacity } : {})), (angle !== undefined ? { transform: `rotate(${angle}deg)` } : {})), (blur !== undefined ? { filter: `blur(${blur * 100}vw)` } : {})), { willChange: blur !== 0 && blur !== undefined ? 'transform' : 'unset', transition: (_g = wrapperStateParams === null || wrapperStateParams === void 0 ? void 0 : wrapperStateParams.transition) !== null && _g !== void 0 ? _g : 'none' }), onMouseEnter: () => {
120
- if (!vimeoPlayer || !layoutParams || layoutParams.play !== 'on-hover')
123
+ if (!vimeoPlayer || !layoutParams || layoutParams.play !== 'on-hover' || isCoverVisible)
121
124
  return;
122
125
  vimeoPlayer.play();
123
126
  }, onMouseLeave: () => {
124
127
  if (!vimeoPlayer || !layoutParams || layoutParams.play !== 'on-hover')
125
128
  return;
126
129
  vimeoPlayer.pause();
127
- }, children: [item.commonParams.coverUrl && ((0, jsx_runtime_1.jsx)("img", { ref: setImgRef, onClick: () => onCoverClick(), src: (_h = item.commonParams.coverUrl) !== null && _h !== void 0 ? _h : '', style: {
130
+ }, children: [item.commonParams.coverUrl && ((0, jsx_runtime_1.jsx)("img", Object.assign({ ref: setImgRef }, ((layoutParams === null || layoutParams === void 0 ? void 0 : layoutParams.play) === 'on-click' ? { onClick: () => onCoverClick() } : {}), ((layoutParams === null || layoutParams === void 0 ? void 0 : layoutParams.play) === 'on-hover' ? { onMouseEnter: () => {
131
+ if (!vimeoPlayer || !layoutParams || layoutParams.play !== 'on-hover')
132
+ return;
133
+ setIsCoverVisible(false);
134
+ vimeoPlayer.play();
135
+ } } : {}), { src: (_h = item.commonParams.coverUrl) !== null && _h !== void 0 ? _h : '', style: {
128
136
  display: isCoverVisible ? 'block' : 'none',
129
137
  cursor: 'pointer',
130
138
  position: 'absolute',
@@ -133,7 +141,7 @@ const VimeoEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibili
133
141
  width: '100%',
134
142
  top: '0',
135
143
  left: '0'
136
- }, alt: "Cover img" })), layoutParams && (!layoutParams.controls && (layoutParams.play === 'on-click' || layoutParams.play === 'auto')) && ((0, jsx_runtime_1.jsx)("div", { onClick: handleClick, style: {
144
+ }, alt: "Cover img" }))), layoutParams && (!layoutParams.controls && (layoutParams.play === 'on-click' || layoutParams.play === 'auto')) && ((0, jsx_runtime_1.jsx)("div", { onClick: handleClick, style: {
137
145
  position: 'absolute',
138
146
  height: '100%',
139
147
  width: '100%',
@@ -29,7 +29,7 @@ const YoutubeEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibi
29
29
  const YT = (0, useYouTubeIframeApi_1.useYouTubeIframeApi)();
30
30
  const [div, setDiv] = (0, react_1.useState)(null);
31
31
  const [player, setPlayer] = (0, react_1.useState)(undefined);
32
- const [isCoverVisible, setIsCoverVisible] = (0, react_1.useState)(false);
32
+ const [isCoverVisible, setIsCoverVisible] = (0, react_1.useState)(item.commonParams.coverUrl !== null);
33
33
  const [imgRef, setImgRef] = (0, react_1.useState)(null);
34
34
  const layoutValues = [item.area, item.layoutParams];
35
35
  const wrapperStateParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['angle', 'blur', 'opacity']);
@@ -115,14 +115,19 @@ const YoutubeEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibi
115
115
  });
116
116
  }, [interactionCtrl, player]);
117
117
  return ((0, jsx_runtime_1.jsxs)(LinkWrapper_1.LinkWrapper, { url: (_e = item.link) === null || _e === void 0 ? void 0 : _e.url, target: (_f = item.link) === null || _f === void 0 ? void 0 : _f.target, children: [(0, jsx_runtime_1.jsxs)("div", { className: `embed-youtube-video-wrapper-${item.id}`, onMouseEnter: () => {
118
- if (!player || !layoutParams || layoutParams.play !== 'on-hover')
118
+ if (!player || !layoutParams || layoutParams.play !== 'on-hover' || isCoverVisible)
119
119
  return;
120
120
  player.playVideo();
121
121
  }, onMouseLeave: () => {
122
122
  if (!player || !layoutParams || layoutParams.play !== 'on-hover')
123
123
  return;
124
124
  player.pauseVideo();
125
- }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, (opacity !== undefined ? { opacity } : {})), (angle !== undefined ? { transform: `rotate(${angle}deg)` } : {})), (blur !== undefined ? { filter: `blur(${blur * 100}vw)` } : {})), { willChange: blur !== 0 && blur !== undefined ? 'transform' : 'unset', transition: (_g = wrapperStateParams === null || wrapperStateParams === void 0 ? void 0 : wrapperStateParams.transition) !== null && _g !== void 0 ? _g : 'none' }), children: [item.commonParams.coverUrl && ((0, jsx_runtime_1.jsx)("img", { ref: setImgRef, onClick: () => onCoverClick(), src: (_h = item.commonParams.coverUrl) !== null && _h !== void 0 ? _h : '', style: {
125
+ }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, (opacity !== undefined ? { opacity } : {})), (angle !== undefined ? { transform: `rotate(${angle}deg)` } : {})), (blur !== undefined ? { filter: `blur(${blur * 100}vw)` } : {})), { willChange: blur !== 0 && blur !== undefined ? 'transform' : 'unset', transition: (_g = wrapperStateParams === null || wrapperStateParams === void 0 ? void 0 : wrapperStateParams.transition) !== null && _g !== void 0 ? _g : 'none' }), children: [item.commonParams.coverUrl && ((0, jsx_runtime_1.jsx)("img", Object.assign({ ref: setImgRef }, ((layoutParams === null || layoutParams === void 0 ? void 0 : layoutParams.play) === 'on-click' ? { onClick: () => onCoverClick() } : {}), ((layoutParams === null || layoutParams === void 0 ? void 0 : layoutParams.play) === 'on-hover' ? { onMouseEnter: () => {
126
+ if (!player || !layoutParams || layoutParams.play !== 'on-hover')
127
+ return;
128
+ setIsCoverVisible(false);
129
+ player.playVideo();
130
+ } } : {}), { src: (_h = item.commonParams.coverUrl) !== null && _h !== void 0 ? _h : '', style: {
126
131
  display: isCoverVisible ? 'block' : 'none',
127
132
  cursor: 'pointer',
128
133
  position: 'absolute',
@@ -132,7 +137,7 @@ const YoutubeEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibi
132
137
  top: '0',
133
138
  left: '0',
134
139
  zIndex: 1
135
- }, alt: "Cover img" })), (0, jsx_runtime_1.jsx)("div", { className: `embed-${item.id}`, ref: setDiv, style: Object.assign(Object.assign({}, (radius !== undefined ? { borderRadius: `${radius * 100}vw` } : {})), { transition: (_j = frameStateParams === null || frameStateParams === void 0 ? void 0 : frameStateParams.transition) !== null && _j !== void 0 ? _j : 'none' }) })] }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
140
+ }, alt: "Cover img" }))), (0, jsx_runtime_1.jsx)("div", { className: `embed-${item.id}`, ref: setDiv, style: Object.assign(Object.assign({}, (radius !== undefined ? { borderRadius: `${radius * 100}vw` } : {})), { transition: (_j = frameStateParams === null || frameStateParams === void 0 ? void 0 : frameStateParams.transition) !== null && _j !== void 0 ? _j : 'none' }) })] }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
136
141
  .embed-youtube-video-wrapper-${item.id},
137
142
  .embed-${item.id} {
138
143
  position: absolute;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cntrl-site/sdk-nextjs",
3
- "version": "1.9.8",
3
+ "version": "1.9.9",
4
4
  "description": "SDK for Next.js",
5
5
  "author": "arsen@momdesign.nyc",
6
6
  "license": "MIT",
@@ -29,7 +29,7 @@ export const VimeoEmbedItem: FC<ItemProps<TVimeoEmbedItem>> = ({ item, sectionId
29
29
  const layoutParams = layoutId ? item.layoutParams[layoutId] : null;
30
30
  const [ref, setRef] = useState<HTMLDivElement | null>(null);
31
31
  const [imgRef, setImgRef] = useState<HTMLImageElement | null>(null);
32
- const [isCoverVisible, setIsCoverVisible] = useState(false);
32
+ const [isCoverVisible, setIsCoverVisible] = useState(item.commonParams.coverUrl !== null);
33
33
  const layoutValues: Record<string, any>[] = [item.area, item.layoutParams];
34
34
  const wrapperStateParams = interactionCtrl?.getState<number>(['angle', 'blur', 'opacity']);
35
35
  const frameStateParams = interactionCtrl?.getState<number>(['radius']);
@@ -58,6 +58,9 @@ export const VimeoEmbedItem: FC<ItemProps<TVimeoEmbedItem>> = ({ item, sectionId
58
58
  if (layoutParams.play === 'on-click') {
59
59
  setIsCoverVisible(true);
60
60
  }
61
+ if (layoutParams.play === 'auto') {
62
+ setIsCoverVisible(false);
63
+ }
61
64
  vimeoPlayer.on('pause', (e) => {
62
65
  if (e.seconds === 0) {
63
66
  setIsCoverVisible(true);
@@ -121,7 +124,7 @@ export const VimeoEmbedItem: FC<ItemProps<TVimeoEmbedItem>> = ({ item, sectionId
121
124
  transition: wrapperStateParams?.transition ?? 'none'
122
125
  }}
123
126
  onMouseEnter={() => {
124
- if (!vimeoPlayer || !layoutParams || layoutParams.play !== 'on-hover') return;
127
+ if (!vimeoPlayer || !layoutParams || layoutParams.play !== 'on-hover' || isCoverVisible) return;
125
128
  vimeoPlayer.play();
126
129
  }}
127
130
  onMouseLeave={() => {
@@ -132,7 +135,12 @@ export const VimeoEmbedItem: FC<ItemProps<TVimeoEmbedItem>> = ({ item, sectionId
132
135
  {item.commonParams.coverUrl && (
133
136
  <img
134
137
  ref={setImgRef}
135
- onClick={() => onCoverClick()}
138
+ {...(layoutParams?.play === 'on-click' ? { onClick: () => onCoverClick() } : {})}
139
+ {...(layoutParams?.play === 'on-hover' ? { onMouseEnter: () => {
140
+ if (!vimeoPlayer || !layoutParams || layoutParams.play !== 'on-hover') return;
141
+ setIsCoverVisible(false);
142
+ vimeoPlayer.play();
143
+ } } : {})}
136
144
  src={item.commonParams.coverUrl ?? ''}
137
145
  style={{
138
146
  display: isCoverVisible ? 'block' : 'none',
@@ -24,7 +24,7 @@ export const YoutubeEmbedItem: FC<ItemProps<TYoutubeEmbedItem>> = ({ item, secti
24
24
  const YT = useYouTubeIframeApi();
25
25
  const [div, setDiv] = useState<HTMLDivElement | null>(null);
26
26
  const [player, setPlayer] = useState<YTPlayer | undefined>(undefined);
27
- const [isCoverVisible, setIsCoverVisible] = useState(false);
27
+ const [isCoverVisible, setIsCoverVisible] = useState(item.commonParams.coverUrl !== null);
28
28
  const [imgRef, setImgRef] = useState<HTMLImageElement | null>(null);
29
29
  const layoutValues: Record<string, any>[] = [item.area, item.layoutParams];
30
30
  const wrapperStateParams = interactionCtrl?.getState<number>(['angle', 'blur', 'opacity']);
@@ -114,7 +114,7 @@ export const YoutubeEmbedItem: FC<ItemProps<TYoutubeEmbedItem>> = ({ item, secti
114
114
  <div
115
115
  className={`embed-youtube-video-wrapper-${item.id}`}
116
116
  onMouseEnter={() => {
117
- if (!player || !layoutParams || layoutParams.play !== 'on-hover') return;
117
+ if (!player || !layoutParams || layoutParams.play !== 'on-hover' || isCoverVisible) return;
118
118
  player.playVideo();
119
119
  }}
120
120
  onMouseLeave={() => {
@@ -132,7 +132,12 @@ export const YoutubeEmbedItem: FC<ItemProps<TYoutubeEmbedItem>> = ({ item, secti
132
132
  {item.commonParams.coverUrl && (
133
133
  <img
134
134
  ref={setImgRef}
135
- onClick={() => onCoverClick()}
135
+ {...(layoutParams?.play === 'on-click' ? { onClick: () => onCoverClick() } : {})}
136
+ {...(layoutParams?.play === 'on-hover' ? { onMouseEnter: () => {
137
+ if (!player || !layoutParams || layoutParams.play !== 'on-hover') return;
138
+ setIsCoverVisible(false);
139
+ player.playVideo();
140
+ } } : {})}
136
141
  src={item.commonParams.coverUrl ?? ''}
137
142
  style={{
138
143
  display: isCoverVisible ? 'block' : 'none',
@@ -163,7 +163,7 @@ export const Item: FC<ItemWrapperProps> = ({ item, sectionId, articleHeight, isP
163
163
  className={`item-${item.id}`}
164
164
  style={{
165
165
  opacity: (keyframes.length !== 0 && !layout) ? 0 : 1,
166
- top: sticky ?getAnchoredItemTop(stickyTop, sectionHeight, anchorSide) : 0,
166
+ top: sticky ? getAnchoredItemTop(stickyTop, sectionHeight, anchorSide) : 0,
167
167
  height: isRichText && itemHeight !== undefined ? `${itemHeight * 100}vw` : 'unset'
168
168
  }}
169
169
  >
Binary file