pb-sxp-ui 1.0.47 → 1.0.49
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/LICENSE +21 -21
- package/README.md +111 -111
- package/dist/index.cjs +119 -120
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +2 -0
- package/dist/index.js +119 -120
- package/dist/index.js.map +1 -1
- package/dist/index.min.cjs +3 -3
- package/dist/index.min.cjs.map +1 -1
- package/dist/index.min.js +3 -3
- package/dist/index.min.js.map +1 -1
- package/dist/pb-ui.js +119 -120
- package/dist/pb-ui.js.map +1 -1
- package/dist/pb-ui.min.js +3 -3
- package/dist/pb-ui.min.js.map +1 -1
- package/es/core/components/SxpPageRender/VideoWidget/index.js +55 -56
- package/es/core/components/SxpPageRender/WaterFall/List.js +8 -7
- package/es/core/components/SxpPageRender/index.js +0 -2
- package/es/core/context/SxpDataSourceProvider.js +10 -10
- package/es/materials/sxp/popup/CommodityDetail/index.js +4 -4
- package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +1 -1
- package/lib/core/components/SxpPageRender/VideoWidget/index.js +55 -56
- package/lib/core/components/SxpPageRender/WaterFall/List.js +8 -7
- package/lib/core/components/SxpPageRender/index.js +0 -2
- package/lib/core/context/SxpDataSourceProvider.js +10 -10
- package/lib/materials/sxp/popup/CommodityDetail/index.js +4 -4
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +1 -1
- package/package.json +115 -115
package/dist/pb-ui.js
CHANGED
@@ -480,20 +480,20 @@
|
|
480
480
|
}, [bffDataSource]);
|
481
481
|
// 获取推荐视频数据
|
482
482
|
const getRecommendVideos = React.useCallback((query) => __awaiter(void 0, void 0, void 0, function* () {
|
483
|
-
var _a, _b, _c, _d;
|
483
|
+
var _a, _b, _c, _d, _e;
|
484
484
|
query = {
|
485
|
-
maxSize,
|
486
|
-
defaultSize: (
|
485
|
+
maxSize: (_a = query === null || query === void 0 ? void 0 : query.maxSize) !== null && _a !== void 0 ? _a : maxSize,
|
486
|
+
defaultSize: (_b = query === null || query === void 0 ? void 0 : query.defaultSize) !== null && _b !== void 0 ? _b : defaultSize,
|
487
487
|
'itemFilter.itemId': query === null || query === void 0 ? void 0 : query['itemFilter.itemId'],
|
488
488
|
'itemFilter.itemType': query === null || query === void 0 ? void 0 : query['itemFilter.itemType'],
|
489
489
|
hashTag: query === null || query === void 0 ? void 0 : query.hashTag,
|
490
490
|
traceInfo: query === null || query === void 0 ? void 0 : query.traceInfo
|
491
491
|
};
|
492
492
|
if (utmVal) {
|
493
|
-
const val = (
|
493
|
+
const val = (_e = (_d = (_c = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _c === void 0 ? void 0 : _c.filter((val) => {
|
494
494
|
const key = val.split('=')[0];
|
495
495
|
return UTM_KEYS.includes(key);
|
496
|
-
})) === null ||
|
496
|
+
})) === null || _d === void 0 ? void 0 : _d.join('&')) !== null && _e !== void 0 ? _e : '';
|
497
497
|
query = Object.assign(Object.assign({}, query), { channel: decodeURIComponent(val) });
|
498
498
|
}
|
499
499
|
const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('/recommend/list', { method: 'GET', query }));
|
@@ -505,7 +505,7 @@
|
|
505
505
|
return result === null || result === void 0 ? void 0 : result.data;
|
506
506
|
}), [bffFetch, utmVal, maxSize, defaultSize]);
|
507
507
|
const loadVideos = React.useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
508
|
-
var
|
508
|
+
var _f, _g;
|
509
509
|
if (rtcList.length <= 0) {
|
510
510
|
return;
|
511
511
|
}
|
@@ -514,8 +514,8 @@
|
|
514
514
|
'itemFilter.itemId': waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.itemId,
|
515
515
|
'itemFilter.itemType': waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.itemType
|
516
516
|
});
|
517
|
-
setRtcList(rtcList.concat((
|
518
|
-
setCacheRtcList(cacheRtcList.concat((
|
517
|
+
setRtcList(rtcList.concat((_f = data === null || data === void 0 ? void 0 : data.recList) !== null && _f !== void 0 ? _f : []));
|
518
|
+
setCacheRtcList(cacheRtcList.concat((_g = data === null || data === void 0 ? void 0 : data.recList) !== null && _g !== void 0 ? _g : []));
|
519
519
|
}), [getRecommendVideos, rtcList, waterFallData, cacheRtcList]);
|
520
520
|
const bffEventReport = React.useCallback(({ userInfo, eventInfo }) => {
|
521
521
|
// 关闭 BFF 事件上报
|
@@ -559,12 +559,12 @@
|
|
559
559
|
}), [bffFetch]);
|
560
560
|
// 获取 Tag
|
561
561
|
const bffGetTagList = React.useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
562
|
-
var
|
562
|
+
var _h, _j;
|
563
563
|
if (!utmVal)
|
564
564
|
return;
|
565
565
|
try {
|
566
566
|
const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('/tag/list', { method: 'GET', query: { channel: utmVal } }));
|
567
|
-
setTagList((
|
567
|
+
setTagList((_j = (_h = result === null || result === void 0 ? void 0 : result.data) === null || _h === void 0 ? void 0 : _h.tags) !== null && _j !== void 0 ? _j : []);
|
568
568
|
}
|
569
569
|
catch (e) {
|
570
570
|
console.log('e', e);
|
@@ -8408,10 +8408,10 @@
|
|
8408
8408
|
React.createElement("div", { className: 'pb-commondity-content-title', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title, hidden: !!product && !(product === null || product === void 0 ? void 0 : product.title) }, (_b = product === null || product === void 0 ? void 0 : product.title) !== null && _b !== void 0 ? _b : 'Pendant in Yellow Gold with Diamonds, Medium'),
|
8409
8409
|
React.createElement("div", { className: 'pb-commondity-content-price', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price, hidden: !!product && !(product === null || product === void 0 ? void 0 : product.price) }, priceText),
|
8410
8410
|
React.createElement("div", { hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.info) || (product === null || product === void 0 ? void 0 : product.info) === '') },
|
8411
|
-
React.createElement(ExpandableText$1, { foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, onClick: () => setShowModal(true), isPost: isPost, text: (_c = product === null || product === void 0 ? void 0 : product.info) !== null && _c !== void 0 ? _c : `The design inspiration of Tiffany Lock series comes from the power of connection and inclusiveness, and the
|
8412
|
-
bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
|
8413
|
-
collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
|
8414
|
-
necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
|
8411
|
+
React.createElement(ExpandableText$1, { foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, onClick: () => setShowModal(true), isPost: isPost, text: (_c = product === null || product === void 0 ? void 0 : product.info) !== null && _c !== void 0 ? _c : `The design inspiration of Tiffany Lock series comes from the power of connection and inclusiveness, and the
|
8412
|
+
bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
|
8413
|
+
collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
|
8414
|
+
necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
|
8415
8415
|
18-karat gold, this necklace is embellished with hand-set diamonds.`, maxStr: 79, className: 'pb-commondity-content-info', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.info }))));
|
8416
8416
|
};
|
8417
8417
|
const renderBtn = () => {
|
@@ -8862,7 +8862,7 @@
|
|
8862
8862
|
const productInfoText = ({ isPost }) => {
|
8863
8863
|
return (React.createElement("div", { hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.info) || (product === null || product === void 0 ? void 0 : product.info) === '') },
|
8864
8864
|
React.createElement(ExpandableText$1, { isPost: isPost, onClick: () => setShowModal(true), className: 'pb-commondityDiroNew-info', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.info, foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, text: (product === null || product === void 0 ? void 0 : product.info) ||
|
8865
|
-
`Unveiled at the Spring-Summer 2023 fashion show, the Dior Toujours bag is distinguished by a casual and practical design. Crafted in black calfskin with Macrocannage topstitching, it showcases a spacious interior compartment with a matching pouch to organize essentials. Its leather strap closure keeps items secure while the D of the CD Lock closure twists to adjust the sides and enhance the bag's silhouette. The leather handles can be adjusted using the small notches in order to be able to carry the large bag by hand or wear it over the shoulder. CD Lock and strap closures D.I.O.R. charms Removable interior pouch Adjustable leather handles Dust bag included
|
8865
|
+
`Unveiled at the Spring-Summer 2023 fashion show, the Dior Toujours bag is distinguished by a casual and practical design. Crafted in black calfskin with Macrocannage topstitching, it showcases a spacious interior compartment with a matching pouch to organize essentials. Its leather strap closure keeps items secure while the D of the CD Lock closure twists to adjust the sides and enhance the bag's silhouette. The leather handles can be adjusted using the small notches in order to be able to carry the large bag by hand or wear it over the shoulder. CD Lock and strap closures D.I.O.R. charms Removable interior pouch Adjustable leather handles Dust bag included
|
8866
8866
|
Made in Italy` })));
|
8867
8867
|
};
|
8868
8868
|
return (React.createElement("div", { className: 'pb-commondityDiroNew' },
|
@@ -11690,7 +11690,7 @@ Made in Italy` })));
|
|
11690
11690
|
React.createElement("div", { className: 'list-content-listItem-info-price', style: textStyles === null || textStyles === void 0 ? void 0 : textStyles.price, hidden: !priceText }, priceText))));
|
11691
11691
|
};
|
11692
11692
|
function WaterfallList(_a) {
|
11693
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
11693
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
11694
11694
|
var { reportTagsView } = _a, props = __rest(_a, ["reportTagsView"]);
|
11695
11695
|
const { waterFallData, getRecommendVideos, hashTagSize, loadingImage, isOpenHashTag } = useSxpDataSource();
|
11696
11696
|
const [list, setList] = React.useState();
|
@@ -11721,7 +11721,8 @@ Made in Italy` })));
|
|
11721
11721
|
hashTag: waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag,
|
11722
11722
|
'itemFilter.itemId': waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.itemId,
|
11723
11723
|
'itemFilter.itemType': waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.itemType,
|
11724
|
-
defaultSize: hashTagSize
|
11724
|
+
defaultSize: hashTagSize,
|
11725
|
+
maxSize: hashTagSize
|
11725
11726
|
}).then((res) => {
|
11726
11727
|
var _a, _b;
|
11727
11728
|
setData(res);
|
@@ -11767,16 +11768,12 @@ Made in Italy` })));
|
|
11767
11768
|
return (React.createElement(WaterfallFlowItem, Object.assign({ key: ind, index: ind, rec: item, list: list, reportTagsView: reportTagsView }, props)));
|
11768
11769
|
})),
|
11769
11770
|
React.createElement("div", { hidden: !isLoadMore, style: { textAlign: 'center' } }, "loading..."),
|
11770
|
-
React.createElement("div", {
|
11771
|
-
|
11772
|
-
style: {
|
11773
|
-
height: ((_g = data === null || data === void 0 ? void 0 : data.tag) === null || _g === void 0 ? void 0 : _g.link) ? ((_h = props === null || props === void 0 ? void 0 : props.buttonBgStyle) === null || _h === void 0 ? void 0 : _h.height) || ((_j = props === null || props === void 0 ? void 0 : props.buttonStyle) === null || _j === void 0 ? void 0 : _j.height) || '100px' : 0
|
11771
|
+
React.createElement("div", { hidden: !((_g = data === null || data === void 0 ? void 0 : data.tag) === null || _g === void 0 ? void 0 : _g.link), style: {
|
11772
|
+
height: ((_h = data === null || data === void 0 ? void 0 : data.tag) === null || _h === void 0 ? void 0 : _h.link) ? ((_j = props === null || props === void 0 ? void 0 : props.buttonBgStyle) === null || _j === void 0 ? void 0 : _j.height) || ((_k = props === null || props === void 0 ? void 0 : props.buttonStyle) === null || _k === void 0 ? void 0 : _k.height) || '100px' : 0
|
11774
11773
|
} })),
|
11775
|
-
React.createElement("div", { className: 'list-bottom', style: props === null || props === void 0 ? void 0 : props.buttonBgStyle }),
|
11776
|
-
React.createElement("div", {
|
11777
|
-
|
11778
|
-
className: 'list-btn-wrap', style: Object.assign(Object.assign({}, props === null || props === void 0 ? void 0 : props.buttonBgStyle), { height: 'auto', backgroundColor: 'transparent' }) },
|
11779
|
-
React.createElement("button", { className: 'list-btn', style: props === null || props === void 0 ? void 0 : props.buttonStyle, onClick: handleClickLink }, ((_k = data === null || data === void 0 ? void 0 : data.tag) === null || _k === void 0 ? void 0 : _k.linkTitle) || 'Shop the collection'))))));
|
11774
|
+
React.createElement("div", { className: 'list-bottom', hidden: !((_l = data === null || data === void 0 ? void 0 : data.tag) === null || _l === void 0 ? void 0 : _l.link), style: props === null || props === void 0 ? void 0 : props.buttonBgStyle }),
|
11775
|
+
React.createElement("div", { hidden: !((_m = data === null || data === void 0 ? void 0 : data.tag) === null || _m === void 0 ? void 0 : _m.link), className: 'list-btn-wrap', style: Object.assign(Object.assign({}, props === null || props === void 0 ? void 0 : props.buttonBgStyle), { height: 'auto', backgroundColor: 'transparent' }) },
|
11776
|
+
React.createElement("button", { className: 'list-btn', style: props === null || props === void 0 ? void 0 : props.buttonStyle, onClick: handleClickLink }, ((_o = data === null || data === void 0 ? void 0 : data.tag) === null || _o === void 0 ? void 0 : _o.linkTitle) || 'Shop the collection'))))));
|
11780
11777
|
}
|
11781
11778
|
|
11782
11779
|
var img$1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAaZJREFUeF7t2jFKBEEQRuG3mSJeQTARURDMTL2EqXfwAnoKD6FHMDEzNVIw2tzQC2gFggyDrExX1V92T7wz9PumFnqbXdH5teq8nwEwJqBzgfEVKDYAW8Ae8NZq3ZUm4Aa4AnaBR+C8BUIVAIu/ngSfAs9LESoAWLgB/LzWwP7SeLtfHWAu3tZ9Adz/dwD3eOUJCIlXBQiLVwQIjVcDCI9XAkiJVwFIi1cASI3PBpjb3jbd5GyyUcraCUrEZ02ATHwGgFR8NIBcfCSAZHwUgGx8BIB0vDeAfLwnQIl4L4Ay8R4ApeJbA2wD78DOZA/e7ABzk739Xz/T8rfAIfA6WYCd3BqA7NUSwCKfgLNKCK0BjoC7rzP74yoIrQGsuxSCB0ApBC+AMgieACUQvAHkESIApBGiAGQRIgEkEaIB5BAyAKQQsgBkEDIBJBCyAdIRFABSEVQA0hCUAFIQ1ADCERQBQhFUAcIQlAFCENQBfkOwg9eXpeftFQDmEOzv8ifARy8A3wiXwAHwANwujbf7q0xAi9bZZwwAN9oiDx4TUORFuS2z+wn4BAiAaEHnKChjAAAAAElFTkSuQmCC";
|
@@ -12067,6 +12064,33 @@ Made in Italy` })));
|
|
12067
12064
|
const [firstFrameSrc, setFirstFrameSrc] = React.useState('');
|
12068
12065
|
const videoId = `pb-cache-video-${index}`;
|
12069
12066
|
const videoEleRef = React.useRef(null);
|
12067
|
+
const blur = React.useMemo(() => {
|
12068
|
+
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2';
|
12069
|
+
}, [videoPostConfig]);
|
12070
|
+
const translateY = React.useMemo(() => {
|
12071
|
+
var _a;
|
12072
|
+
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2'
|
12073
|
+
? `translateY(-${50 + ((_a = videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.offsetTop) !== null && _a !== void 0 ? _a : 0)}%) translate3d(0px, 0px, 0px)`
|
12074
|
+
: 'translateY(-50%)';
|
12075
|
+
}, [videoPostConfig]);
|
12076
|
+
const blurBgSrc = React.useMemo(() => {
|
12077
|
+
var _a;
|
12078
|
+
return ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || firstFrameSrc;
|
12079
|
+
}, [firstFrameSrc, rec]);
|
12080
|
+
const blurStyle = React.useMemo(() => {
|
12081
|
+
return blur
|
12082
|
+
? {
|
12083
|
+
filter: 'blur(10px)',
|
12084
|
+
transform: 'translate3d(0px, 0px, 0px) scale(1.2)'
|
12085
|
+
}
|
12086
|
+
: {};
|
12087
|
+
}, [blur]);
|
12088
|
+
const isBgColor = React.useMemo(() => {
|
12089
|
+
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgWay) === '1';
|
12090
|
+
}, [videoPostConfig]);
|
12091
|
+
const bgStyle = React.useMemo(() => {
|
12092
|
+
return isBgColor && (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgColor) ? { backgroundColor: videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgColor } : {};
|
12093
|
+
}, [videoPostConfig, isBgColor]);
|
12070
12094
|
React.useEffect(() => {
|
12071
12095
|
if (!videoRef)
|
12072
12096
|
return;
|
@@ -12107,15 +12131,40 @@ Made in Italy` })));
|
|
12107
12131
|
setIsFirstPlay(false);
|
12108
12132
|
}
|
12109
12133
|
}, [bffEventReport, data, index, isFirstPlay, videoRef]);
|
12134
|
+
const handLoadeddata = React.useCallback(() => {
|
12135
|
+
var _a;
|
12136
|
+
if (!videoRef || isBgColor || firstFrameSrc || !blur)
|
12137
|
+
return;
|
12138
|
+
const videoDomRef = document.getElementById('player-container-id_html5_api');
|
12139
|
+
if (((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || !canvasRef || !videoDomRef || !canvasRef.current)
|
12140
|
+
return;
|
12141
|
+
const setFrameImg = () => {
|
12142
|
+
videoDomRef.style.objectFit = 'contain';
|
12143
|
+
const video = videoDomRef;
|
12144
|
+
const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
|
12145
|
+
const ctx = canvas.getContext('2d');
|
12146
|
+
const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
|
12147
|
+
const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
|
12148
|
+
canvas.height = targetHeight;
|
12149
|
+
canvas.width = targetWidth;
|
12150
|
+
ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
|
12151
|
+
setFirstFrameSrc(canvas.toDataURL());
|
12152
|
+
};
|
12153
|
+
setFrameImg();
|
12154
|
+
setTimeout(() => {
|
12155
|
+
setFrameImg();
|
12156
|
+
}, 500);
|
12157
|
+
}, [videoRef, isBgColor, rec, firstFrameSrc, blur]);
|
12110
12158
|
const handleLoadedmetadata = React.useCallback(() => {
|
12111
12159
|
if (!videoRef)
|
12112
12160
|
return;
|
12113
|
-
|
12114
|
-
|
12115
|
-
|
12116
|
-
|
12161
|
+
handLoadeddata();
|
12162
|
+
// if (activeIndex !== index) {
|
12163
|
+
// videoRef?.play();
|
12164
|
+
// videoRef?.pause();
|
12165
|
+
// }
|
12117
12166
|
setIsLoadFinish(true);
|
12118
|
-
}, [
|
12167
|
+
}, [videoRef, handLoadeddata]);
|
12119
12168
|
const handleCanplay = React.useCallback(() => {
|
12120
12169
|
setIsLoadFinish(true);
|
12121
12170
|
}, []);
|
@@ -12176,57 +12225,7 @@ Made in Italy` })));
|
|
12176
12225
|
}
|
12177
12226
|
});
|
12178
12227
|
}
|
12179
|
-
}, [data, index, bffEventReport, videoRef]);
|
12180
|
-
const blur = React.useMemo(() => {
|
12181
|
-
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2';
|
12182
|
-
}, [videoPostConfig]);
|
12183
|
-
const translateY = React.useMemo(() => {
|
12184
|
-
var _a;
|
12185
|
-
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2'
|
12186
|
-
? `translateY(-${50 + ((_a = videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.offsetTop) !== null && _a !== void 0 ? _a : 0)}%) translate3d(0px, 0px, 0px)`
|
12187
|
-
: 'translateY(-50%)';
|
12188
|
-
}, [videoPostConfig]);
|
12189
|
-
const blurBgSrc = React.useMemo(() => {
|
12190
|
-
var _a;
|
12191
|
-
return ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || firstFrameSrc;
|
12192
|
-
}, [firstFrameSrc, rec]);
|
12193
|
-
const blurStyle = React.useMemo(() => {
|
12194
|
-
return blur
|
12195
|
-
? {
|
12196
|
-
filter: 'blur(10px)',
|
12197
|
-
transform: 'translate3d(0px, 0px, 0px) scale(1.2)'
|
12198
|
-
}
|
12199
|
-
: {};
|
12200
|
-
}, [blur]);
|
12201
|
-
const isBgColor = React.useMemo(() => {
|
12202
|
-
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgWay) === '1';
|
12203
|
-
}, [videoPostConfig]);
|
12204
|
-
const bgStyle = React.useMemo(() => {
|
12205
|
-
return isBgColor && (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgColor) ? { backgroundColor: videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgColor } : {};
|
12206
|
-
}, [videoPostConfig, isBgColor]);
|
12207
|
-
const handLoadeddata = React.useCallback(() => {
|
12208
|
-
var _a;
|
12209
|
-
if (!videoRef || isBgColor)
|
12210
|
-
return;
|
12211
|
-
const videoDomRef = document.getElementById('player-container-id_html5_api');
|
12212
|
-
if (((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || !canvasRef || !videoDomRef || !canvasRef.current)
|
12213
|
-
return;
|
12214
|
-
const setFrameImg = () => {
|
12215
|
-
const video = videoDomRef;
|
12216
|
-
const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
|
12217
|
-
const ctx = canvas.getContext('2d');
|
12218
|
-
const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
|
12219
|
-
const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
|
12220
|
-
canvas.height = targetHeight;
|
12221
|
-
canvas.width = targetWidth;
|
12222
|
-
ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
|
12223
|
-
setFirstFrameSrc(canvas.toDataURL());
|
12224
|
-
};
|
12225
|
-
setFrameImg();
|
12226
|
-
setTimeout(() => {
|
12227
|
-
setFrameImg();
|
12228
|
-
}, 500);
|
12229
|
-
}, [videoRef, isBgColor, rec]);
|
12228
|
+
}, [data, index, bffEventReport, videoRef, activeIndex]);
|
12230
12229
|
React.useEffect(() => {
|
12231
12230
|
if (!isActive || !videoRef)
|
12232
12231
|
return;
|
@@ -12240,6 +12239,7 @@ Made in Italy` })));
|
|
12240
12239
|
if (!dom && !dom2)
|
12241
12240
|
return;
|
12242
12241
|
videoPlayerWrapperNode === null || videoPlayerWrapperNode === void 0 ? void 0 : videoPlayerWrapperNode.appendChild(dom || dom2);
|
12242
|
+
videoRef.poster('https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240218/fsTan2fgYKJWrCpJtGZPogm0NnvdT1708239153661.jpeg');
|
12243
12243
|
videoRef === null || videoRef === void 0 ? void 0 : videoRef.src(videoSrc);
|
12244
12244
|
videoRef === null || videoRef === void 0 ? void 0 : videoRef.on('loadedmetadata', handleLoadedmetadata);
|
12245
12245
|
videoRef === null || videoRef === void 0 ? void 0 : videoRef.on('loadeddata', handLoadeddata);
|
@@ -12647,47 +12647,11 @@ Made in Italy` })));
|
|
12647
12647
|
React.createElement("p", { style: Object.assign({}, nudge === null || nudge === void 0 ? void 0 : nudge.textStyle) }, (_g = nudge === null || nudge === void 0 ? void 0 : nudge.content) !== null && _g !== void 0 ? _g : '')))));
|
12648
12648
|
};
|
12649
12649
|
|
12650
|
-
const DEFAULT_TAG = 'FOR U';
|
12651
|
-
const Tagbar = ({ tagList = [], setActiveIndex }) => {
|
12652
|
-
const [selectTag, setSelectTag] = React.useState(DEFAULT_TAG);
|
12653
|
-
const { getRecommendVideos, setRtcList, setCacheRtcList, setCacheActiveIndex, setLoading, swiperRef } = useSxpDataSource();
|
12654
|
-
const realTagList = React.useMemo(() => {
|
12655
|
-
return [DEFAULT_TAG, ...tagList];
|
12656
|
-
}, [tagList]);
|
12657
|
-
const handleSelectTag = (tag) => () => {
|
12658
|
-
if (tag === selectTag)
|
12659
|
-
return;
|
12660
|
-
let hashTag;
|
12661
|
-
if (tag !== DEFAULT_TAG) {
|
12662
|
-
hashTag = tag;
|
12663
|
-
}
|
12664
|
-
setLoading === null || setLoading === void 0 ? void 0 : setLoading(true);
|
12665
|
-
getRecommendVideos === null || getRecommendVideos === void 0 ? void 0 : getRecommendVideos({ hashTag }).then((res) => {
|
12666
|
-
var _a, _b, _c, _d;
|
12667
|
-
setRtcList === null || setRtcList === void 0 ? void 0 : setRtcList((_a = res === null || res === void 0 ? void 0 : res.recList) !== null && _a !== void 0 ? _a : []);
|
12668
|
-
setCacheRtcList === null || setCacheRtcList === void 0 ? void 0 : setCacheRtcList((_b = res === null || res === void 0 ? void 0 : res.recList) !== null && _b !== void 0 ? _b : []);
|
12669
|
-
setActiveIndex === null || setActiveIndex === void 0 ? void 0 : setActiveIndex(0);
|
12670
|
-
setCacheActiveIndex === null || setCacheActiveIndex === void 0 ? void 0 : setCacheActiveIndex(0);
|
12671
|
-
(_d = (_c = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _c === void 0 ? void 0 : _c.swiper) === null || _d === void 0 ? void 0 : _d.slideTo(0);
|
12672
|
-
}).finally(() => {
|
12673
|
-
setLoading === null || setLoading === void 0 ? void 0 : setLoading(false);
|
12674
|
-
});
|
12675
|
-
setSelectTag(tag);
|
12676
|
-
};
|
12677
|
-
if (tagList.length <= 0)
|
12678
|
-
return null;
|
12679
|
-
return (React.createElement("div", { className: 'clc-sxp-tagbar' },
|
12680
|
-
React.createElement("ul", { className: 'clc-sxp-tagbar-list', style: { margin: 'auto', gap: 24 } }, realTagList.map((tag) => {
|
12681
|
-
return (React.createElement("li", { className: `clc-sxp-tagbar-list-item ${tag === selectTag ? 'clc-sxp-tagbar-list-item-active' : ''}`, key: tag, onClick: handleSelectTag(tag) }, tag));
|
12682
|
-
}))));
|
12683
|
-
};
|
12684
|
-
var Tagbar$1 = React.memo(Tagbar);
|
12685
|
-
|
12686
12650
|
/*
|
12687
12651
|
* @Author: binruan@chatlabs.com
|
12688
12652
|
* @Date: 2024-01-15 19:03:09
|
12689
12653
|
* @LastEditors: binruan@chatlabs.com
|
12690
|
-
* @LastEditTime: 2024-04-
|
12654
|
+
* @LastEditTime: 2024-04-30 15:43:40
|
12691
12655
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\index.tsx
|
12692
12656
|
*
|
12693
12657
|
*/
|
@@ -13087,7 +13051,6 @@ Made in Italy` })));
|
|
13087
13051
|
setOpenHashtag === null || setOpenHashtag === void 0 ? void 0 : setOpenHashtag(true);
|
13088
13052
|
} })),
|
13089
13053
|
renderLogo,
|
13090
|
-
React.createElement(Tagbar$1, { tagList: tagList, setActiveIndex: setActiveIndex }),
|
13091
13054
|
isShowFingerTip ? React.createElement(FingerSwipeTip, { imageUrl: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.swipeTipIcon }) : null,
|
13092
13055
|
React.createElement(Swiper, { ref: swiperRef, onSlideChange: () => {
|
13093
13056
|
swiperRef.current.swiper.allowTouchMove = false;
|
@@ -13148,6 +13111,42 @@ Made in Italy` })));
|
|
13148
13111
|
React.createElement("div", { id: 'player-container-id-copy' }))));
|
13149
13112
|
};
|
13150
13113
|
|
13114
|
+
const DEFAULT_TAG = 'FOR U';
|
13115
|
+
const Tagbar = ({ tagList = [], setActiveIndex }) => {
|
13116
|
+
const [selectTag, setSelectTag] = React.useState(DEFAULT_TAG);
|
13117
|
+
const { getRecommendVideos, setRtcList, setCacheRtcList, setCacheActiveIndex, setLoading, swiperRef } = useSxpDataSource();
|
13118
|
+
const realTagList = React.useMemo(() => {
|
13119
|
+
return [DEFAULT_TAG, ...tagList];
|
13120
|
+
}, [tagList]);
|
13121
|
+
const handleSelectTag = (tag) => () => {
|
13122
|
+
if (tag === selectTag)
|
13123
|
+
return;
|
13124
|
+
let hashTag;
|
13125
|
+
if (tag !== DEFAULT_TAG) {
|
13126
|
+
hashTag = tag;
|
13127
|
+
}
|
13128
|
+
setLoading === null || setLoading === void 0 ? void 0 : setLoading(true);
|
13129
|
+
getRecommendVideos === null || getRecommendVideos === void 0 ? void 0 : getRecommendVideos({ hashTag }).then((res) => {
|
13130
|
+
var _a, _b, _c, _d;
|
13131
|
+
setRtcList === null || setRtcList === void 0 ? void 0 : setRtcList((_a = res === null || res === void 0 ? void 0 : res.recList) !== null && _a !== void 0 ? _a : []);
|
13132
|
+
setCacheRtcList === null || setCacheRtcList === void 0 ? void 0 : setCacheRtcList((_b = res === null || res === void 0 ? void 0 : res.recList) !== null && _b !== void 0 ? _b : []);
|
13133
|
+
setActiveIndex === null || setActiveIndex === void 0 ? void 0 : setActiveIndex(0);
|
13134
|
+
setCacheActiveIndex === null || setCacheActiveIndex === void 0 ? void 0 : setCacheActiveIndex(0);
|
13135
|
+
(_d = (_c = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _c === void 0 ? void 0 : _c.swiper) === null || _d === void 0 ? void 0 : _d.slideTo(0);
|
13136
|
+
}).finally(() => {
|
13137
|
+
setLoading === null || setLoading === void 0 ? void 0 : setLoading(false);
|
13138
|
+
});
|
13139
|
+
setSelectTag(tag);
|
13140
|
+
};
|
13141
|
+
if (tagList.length <= 0)
|
13142
|
+
return null;
|
13143
|
+
return (React.createElement("div", { className: 'clc-sxp-tagbar' },
|
13144
|
+
React.createElement("ul", { className: 'clc-sxp-tagbar-list', style: { margin: 'auto', gap: 24 } }, realTagList.map((tag) => {
|
13145
|
+
return (React.createElement("li", { className: `clc-sxp-tagbar-list-item ${tag === selectTag ? 'clc-sxp-tagbar-list-item-active' : ''}`, key: tag, onClick: handleSelectTag(tag) }, tag));
|
13146
|
+
}))));
|
13147
|
+
};
|
13148
|
+
var Tagbar$1 = React.memo(Tagbar);
|
13149
|
+
|
13151
13150
|
const PictureGroup = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index }) => {
|
13152
13151
|
return (React.createElement(Swiper, { defaultValue: 0, direction: 'horizontal', modules: [Pagination, Autoplay], pagination: { clickable: true, bulletActiveClass: 'swipe-item-active-bullet' }, height: height, style: { width }, loop: true, autoplay: false }, imgUrls === null || imgUrls === void 0 ? void 0 : imgUrls.map((url) => {
|
13153
13152
|
return (React.createElement(SwiperSlide, { key: url },
|