pb-sxp-ui 1.3.8 → 1.4.0
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 +166 -56
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +166 -56
- 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 +166 -56
- 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/PictureGroup/index.js +11 -1
- package/es/core/components/SxpPageRender/index.d.ts +2 -0
- package/es/core/components/SxpPageRender/index.js +9 -4
- package/es/core/context/SxpDataSourceProvider.d.ts +2 -1
- package/es/core/context/SxpDataSourceProvider.js +22 -15
- package/es/core/hooks/useEventReport.js +9 -16
- package/es/materials/sxp/popup/AppointForm/Form.js +1 -1
- package/es/materials/sxp/popup/AppointForm/index.js +31 -8
- package/es/materials/sxp/popup/CommodityDetail/index.d.ts +3 -0
- package/es/materials/sxp/popup/CommodityDetail/index.js +19 -5
- package/es/materials/sxp/popup/CommodityDetail/settingRender.d.ts +13 -0
- package/es/materials/sxp/popup/CommodityDetail/settingRender.js +21 -0
- package/es/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +3 -0
- package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +16 -2
- package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +13 -0
- package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +21 -0
- package/lib/core/components/SxpPageRender/PictureGroup/index.js +11 -1
- package/lib/core/components/SxpPageRender/index.d.ts +2 -0
- package/lib/core/components/SxpPageRender/index.js +9 -4
- package/lib/core/context/SxpDataSourceProvider.d.ts +2 -1
- package/lib/core/context/SxpDataSourceProvider.js +22 -15
- package/lib/core/hooks/useEventReport.js +9 -16
- package/lib/materials/sxp/popup/AppointForm/Form.js +1 -1
- package/lib/materials/sxp/popup/AppointForm/index.js +30 -7
- package/lib/materials/sxp/popup/CommodityDetail/index.d.ts +3 -0
- package/lib/materials/sxp/popup/CommodityDetail/index.js +19 -5
- package/lib/materials/sxp/popup/CommodityDetail/settingRender.d.ts +13 -0
- package/lib/materials/sxp/popup/CommodityDetail/settingRender.js +21 -0
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +3 -0
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +16 -2
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +13 -0
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +21 -0
- package/package.json +111 -111
package/dist/pb-ui.js
CHANGED
@@ -650,6 +650,7 @@
|
|
650
650
|
const [selectTag, setSelectTag] = React.useState(DEFAULT_TAG);
|
651
651
|
const checkCommodityIndexRef = React.useRef(-1);
|
652
652
|
const popupCurTimeRef = React.useRef(null);
|
653
|
+
const [isNoMoreData, setIsNoMoreData] = React.useState(false);
|
653
654
|
const isShowConsent = React.useMemo(() => {
|
654
655
|
var _a, _b, _c, _d;
|
655
656
|
return (((_d = (_c = (_b = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.consent) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.item) === null || _c === void 0 ? void 0 : _c.props) === null || _d === void 0 ? void 0 : _d.privacy_necessity) && !isAgreePolicy && !isEditor) || isOpenConsent;
|
@@ -711,7 +712,7 @@
|
|
711
712
|
}, [bffDataSource]);
|
712
713
|
// 获取推荐视频数据
|
713
714
|
const getRecommendVideos = React.useCallback((query) => __awaiter(void 0, void 0, void 0, function* () {
|
714
|
-
var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
715
|
+
var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
715
716
|
query = Object.assign(Object.assign(Object.assign({ maxSize: (_d = query === null || query === void 0 ? void 0 : query.maxSize) !== null && _d !== void 0 ? _d : maxSize, defaultSize: (_e = query === null || query === void 0 ? void 0 : query.defaultSize) !== null && _e !== void 0 ? _e : defaultSize, hashTag: query === null || query === void 0 ? void 0 : query.hashTag, traceInfo: query === null || query === void 0 ? void 0 : query.traceInfo, themeTag: query === null || query === void 0 ? void 0 : query.themeTag }, ((query === null || query === void 0 ? void 0 : query.contentFilter) && { contentFilter: `[${query === null || query === void 0 ? void 0 : query.contentFilter}]` })), ((query === null || query === void 0 ? void 0 : query.productFilter) && { productFilter: `[${query === null || query === void 0 ? void 0 : query.productFilter}]` })), { pageNum: query === null || query === void 0 ? void 0 : query.pageNum });
|
716
717
|
if (utmVal) {
|
717
718
|
const val = (_h = (_g = (_f = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _f === void 0 ? void 0 : _f.filter((val) => {
|
@@ -721,9 +722,6 @@
|
|
721
722
|
})) === null || _g === void 0 ? void 0 : _g.join('&')) !== null && _h !== void 0 ? _h : '';
|
722
723
|
query = Object.assign(Object.assign({}, query), { channel: decodeURIComponent(val) });
|
723
724
|
}
|
724
|
-
if (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enablePreview) {
|
725
|
-
query = Object.assign(Object.assign({}, query), { directPage: true, level: 1, pageNum: (_j = query === null || query === void 0 ? void 0 : query.pageNum) !== null && _j !== void 0 ? _j : 1 });
|
726
|
-
}
|
727
725
|
if (isEditor) {
|
728
726
|
let pageNum = 1;
|
729
727
|
query = Object.assign(Object.assign(Object.assign({}, query), { directPage: true, level: 1 }), (!utmVal && channelQueryList && (channelQueryList === null || channelQueryList === void 0 ? void 0 : channelQueryList.length) > 0 && { channel: channelQueryList === null || channelQueryList === void 0 ? void 0 : channelQueryList[0] }));
|
@@ -734,15 +732,15 @@
|
|
734
732
|
let list = [];
|
735
733
|
let result = null;
|
736
734
|
const recurveRecList = (query) => __awaiter(void 0, void 0, void 0, function* () {
|
737
|
-
var
|
735
|
+
var _t, _u, _v, _w, _x, _y;
|
738
736
|
query.pageNum = pageNum;
|
739
737
|
result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('/recommend/list', { method: 'GET', query }));
|
740
738
|
if (!(result === null || result === void 0 ? void 0 : result.success)) {
|
741
739
|
return undefined;
|
742
740
|
}
|
743
741
|
setLoading(false);
|
744
|
-
const isNotNullList = (_s = (_r = result === null || result === void 0 ? void 0 : result.data) === null || _r === void 0 ? void 0 : _r.recList) === null || _s === void 0 ? void 0 : _s.every((item) => (item === null || item === void 0 ? void 0 : item.product) || (item === null || item === void 0 ? void 0 : item.video));
|
745
742
|
list = list.concat((_w = (_v = (_u = (_t = result === null || result === void 0 ? void 0 : result.data) === null || _t === void 0 ? void 0 : _t.recList) === null || _u === void 0 ? void 0 : _u.filter) === null || _v === void 0 ? void 0 : _v.call(_u, (item) => (item === null || item === void 0 ? void 0 : item.product) || (item === null || item === void 0 ? void 0 : item.video))) !== null && _w !== void 0 ? _w : []);
|
743
|
+
const isNotNullList = (_y = (_x = result === null || result === void 0 ? void 0 : result.data) === null || _x === void 0 ? void 0 : _x.recList) === null || _y === void 0 ? void 0 : _y.some((item) => (item === null || item === void 0 ? void 0 : item.product) || (item === null || item === void 0 ? void 0 : item.video));
|
746
744
|
if (isNotNullList) {
|
747
745
|
pageNum = pageNum + 1;
|
748
746
|
yield recurveRecList(query);
|
@@ -750,9 +748,12 @@
|
|
750
748
|
});
|
751
749
|
yield recurveRecList(query);
|
752
750
|
if (!(query === null || query === void 0 ? void 0 : query.hashTag) && result)
|
753
|
-
setCurReqInfo({ rtc: (
|
751
|
+
setCurReqInfo({ rtc: (_j = result === null || result === void 0 ? void 0 : result.data) === null || _j === void 0 ? void 0 : _j.rtc, requestId: (_k = result === null || result === void 0 ? void 0 : result.data) === null || _k === void 0 ? void 0 : _k.requestId });
|
754
752
|
return Object.assign(Object.assign({}, result.data), { recList: list });
|
755
753
|
}
|
754
|
+
if (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enablePreview) {
|
755
|
+
query = Object.assign(Object.assign({}, query), { directPage: true, level: 1, pageNum: (_l = query === null || query === void 0 ? void 0 : query.pageNum) !== null && _l !== void 0 ? _l : 1 });
|
756
|
+
}
|
756
757
|
const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('/recommend/list', { method: 'GET', query }));
|
757
758
|
if (!(result === null || result === void 0 ? void 0 : result.success)) {
|
758
759
|
return undefined;
|
@@ -762,19 +763,24 @@
|
|
762
763
|
if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enablePreview) && !isEditor) {
|
763
764
|
let list = [];
|
764
765
|
list = list.concat((_q = (_p = (_o = (_m = result === null || result === void 0 ? void 0 : result.data) === null || _m === void 0 ? void 0 : _m.recList) === null || _o === void 0 ? void 0 : _o.filter) === null || _p === void 0 ? void 0 : _p.call(_o, (item) => (item === null || item === void 0 ? void 0 : item.product) || (item === null || item === void 0 ? void 0 : item.video))) !== null && _q !== void 0 ? _q : []);
|
766
|
+
const isNotNullList = (_s = (_r = result === null || result === void 0 ? void 0 : result.data) === null || _r === void 0 ? void 0 : _r.recList) === null || _s === void 0 ? void 0 : _s.some((item) => (item === null || item === void 0 ? void 0 : item.product) || (item === null || item === void 0 ? void 0 : item.video));
|
767
|
+
if (!isNotNullList) {
|
768
|
+
setIsNoMoreData(true);
|
769
|
+
}
|
765
770
|
return Object.assign(Object.assign({}, result.data), { recList: list });
|
766
771
|
}
|
767
772
|
return result === null || result === void 0 ? void 0 : result.data;
|
768
773
|
}), [bffFetch, utmVal, maxSize, defaultSize, channelQueryList]);
|
769
774
|
const loadVideos = React.useCallback((pageNum) => __awaiter(void 0, void 0, void 0, function* () {
|
770
|
-
var
|
775
|
+
var _z, _0, _1, _2;
|
771
776
|
if (rtcList.length <= 0) {
|
772
777
|
return;
|
773
778
|
}
|
774
779
|
const lastItem = rtcList === null || rtcList === void 0 ? void 0 : rtcList[(rtcList === null || rtcList === void 0 ? void 0 : rtcList.length) - 1];
|
775
|
-
const data = yield getRecommendVideos(Object.assign(Object.assign(Object.assign(Object.assign({ hashTag: waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag }, (((
|
780
|
+
const data = yield getRecommendVideos(Object.assign(Object.assign(Object.assign(Object.assign({ hashTag: waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag }, (((_z = lastItem === null || lastItem === void 0 ? void 0 : lastItem.product) === null || _z === void 0 ? void 0 : _z.itemId) && { productFilter: (_0 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.product) === null || _0 === void 0 ? void 0 : _0.itemId })), (((_1 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.video) === null || _1 === void 0 ? void 0 : _1.itemId) && { contentFilter: (_2 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.video) === null || _2 === void 0 ? void 0 : _2.itemId })), { themeTag: themeTag.current }), ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enablePreview) && !isEditor && { pageNum })));
|
776
781
|
setRtcList(rtcList.concat(getFilterRecList(data)));
|
777
782
|
setCacheRtcList(cacheRtcList.concat(getFilterRecList(data)));
|
783
|
+
return data;
|
778
784
|
}), [getRecommendVideos, rtcList, waterFallData, cacheRtcList]);
|
779
785
|
const bffEventReport = React.useCallback(({ userInfo, eventInfo }) => {
|
780
786
|
// 关闭 BFF 事件上报
|
@@ -819,7 +825,7 @@
|
|
819
825
|
eventName,
|
820
826
|
actionSource,
|
821
827
|
eventSourceUrl,
|
822
|
-
userData: Object.assign(Object.assign(Object.assign({ externalId: fakeUserId }, (fbclid && { fbc: `fb.2.${new Date().getTime()}.${fbclid}` })), (getCookie('_fbp') && { fbp: `fb.2.${new Date().getTime()}.${getCookie('_fbp')}` })), {
|
828
|
+
userData: Object.assign(Object.assign(Object.assign({ externalId: fakeUserId }, (fbclid && { fbc: `fb.2.${new Date().getTime()}.${fbclid}` })), (getCookie('_fbp') && { fbp: `fb.2.${new Date().getTime()}.${getCookie('_fbp')}` })), { clientUserAgent: (_d = (_c = window === null || window === void 0 ? void 0 : window.navigator) === null || _c === void 0 ? void 0 : _c.userAgent) !== null && _d !== void 0 ? _d : '' })
|
823
829
|
},
|
824
830
|
type: 'beacon'
|
825
831
|
});
|
@@ -838,17 +844,17 @@
|
|
838
844
|
}), [bffFetch]);
|
839
845
|
// 获取 Tag
|
840
846
|
const bffGetTagList = React.useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
841
|
-
var
|
847
|
+
var _3, _4, _5, _6, _7;
|
842
848
|
if (!utmVal || !isShowTag)
|
843
849
|
return;
|
844
850
|
try {
|
845
|
-
const val = (
|
851
|
+
const val = (_5 = (_4 = (_3 = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _3 === void 0 ? void 0 : _3.filter((val) => {
|
846
852
|
var _a, _b;
|
847
853
|
const key = val.split('=')[0];
|
848
854
|
return (_b = ((_a = utmParameter === null || utmParameter === void 0 ? void 0 : utmParameter.channels) !== null && _a !== void 0 ? _a : [])) === null || _b === void 0 ? void 0 : _b.includes(key);
|
849
|
-
})) === null ||
|
855
|
+
})) === null || _4 === void 0 ? void 0 : _4.join('&')) !== null && _5 !== void 0 ? _5 : '';
|
850
856
|
const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('/tag/list', { method: 'GET', query: { channel: decodeURIComponent(val) } }));
|
851
|
-
setTagList((
|
857
|
+
setTagList((_7 = (_6 = result === null || result === void 0 ? void 0 : result.data) === null || _6 === void 0 ? void 0 : _6.tags) !== null && _7 !== void 0 ? _7 : []);
|
852
858
|
}
|
853
859
|
catch (e) {
|
854
860
|
console.log('e', e);
|
@@ -995,7 +1001,8 @@
|
|
995
1001
|
globalConfig,
|
996
1002
|
popupCurTimeRef,
|
997
1003
|
checkCommodityIndexRef,
|
998
|
-
isEditor
|
1004
|
+
isEditor,
|
1005
|
+
isNoMoreData
|
999
1006
|
} }, isShowConsent ? (React.createElement(Consent$3, Object.assign({}, (_c = (_b = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.consent) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.item) === null || _c === void 0 ? void 0 : _c.props))) : (render({
|
1000
1007
|
rtcList,
|
1001
1008
|
mutateLike: bffMutateLike,
|
@@ -1438,14 +1445,14 @@
|
|
1438
1445
|
* @Author: binruan@chatlabs.com
|
1439
1446
|
* @Date: 2024-03-12 10:59:06
|
1440
1447
|
* @LastEditors: binruan@chatlabs.com
|
1441
|
-
* @LastEditTime: 2024-08-
|
1448
|
+
* @LastEditTime: 2024-08-28 17:51:37
|
1442
1449
|
* @FilePath: \pb-sxp-ui\src\core\hooks\useEventReport.ts
|
1443
1450
|
*
|
1444
1451
|
*/
|
1445
1452
|
function useEventReport() {
|
1446
1453
|
const { bffEventReport, popupDetailData, waterFallData, isFromHashtag } = useSxpDataSource();
|
1447
1454
|
const jumpToWeb = React.useCallback((data, product, cta, position, traceInfo) => {
|
1448
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9;
|
1455
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13;
|
1449
1456
|
let fromKName = '';
|
1450
1457
|
if (popupDetailData && (((_b = (_a = data === null || data === void 0 ? void 0 : data.video) === null || _a === void 0 ? void 0 : _a.bindProducts) === null || _b === void 0 ? void 0 : _b.length) || ((_c = data === null || data === void 0 ? void 0 : data.video) === null || _c === void 0 ? void 0 : _c.bindProduct))) {
|
1451
1458
|
fromKName = 'pdpPage';
|
@@ -1463,22 +1470,15 @@
|
|
1463
1470
|
fromKName = 'productPage';
|
1464
1471
|
}
|
1465
1472
|
const contentTags = (_p = (_m = (_h = product === null || product === void 0 ? void 0 : product.tags) !== null && _h !== void 0 ? _h : (_l = (_k = (_j = data === null || data === void 0 ? void 0 : data.video) === null || _j === void 0 ? void 0 : _j.bindProducts) === null || _k === void 0 ? void 0 : _k[0]) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : (_o = data === null || data === void 0 ? void 0 : data.video) === null || _o === void 0 ? void 0 : _o.tags) !== null && _p !== void 0 ? _p : (_q = data === null || data === void 0 ? void 0 : data.product) === null || _q === void 0 ? void 0 : _q.tags;
|
1473
|
+
let contentFormat = null;
|
1474
|
+
if ((_r = data === null || data === void 0 ? void 0 : data.video) === null || _r === void 0 ? void 0 : _r.url) {
|
1475
|
+
contentFormat = 'video';
|
1476
|
+
}
|
1477
|
+
else if (((_s = data === null || data === void 0 ? void 0 : data.video) === null || _s === void 0 ? void 0 : _s.imgUrls) && ((_u = (_t = data === null || data === void 0 ? void 0 : data.video) === null || _t === void 0 ? void 0 : _t.imgUrls) === null || _u === void 0 ? void 0 : _u.length)) {
|
1478
|
+
contentFormat = 'image';
|
1479
|
+
}
|
1466
1480
|
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
1467
|
-
eventInfo: {
|
1468
|
-
eventSubject: 'jumpToWeb',
|
1469
|
-
eventDescription: 'User jumped to website',
|
1470
|
-
productId: (_r = product === null || product === void 0 ? void 0 : product.itemId) !== null && _r !== void 0 ? _r : '',
|
1471
|
-
productName: (_s = product === null || product === void 0 ? void 0 : product.title) !== null && _s !== void 0 ? _s : '',
|
1472
|
-
price: (product === null || product === void 0 ? void 0 : product.price) ? (product === null || product === void 0 ? void 0 : product.price) + '' : '0',
|
1473
|
-
productCollection: (_t = product === null || product === void 0 ? void 0 : product.collection) !== null && _t !== void 0 ? _t : '',
|
1474
|
-
fromKName,
|
1475
|
-
fromKPage: location === null || location === void 0 ? void 0 : location.href,
|
1476
|
-
contentTags: contentTags ? JSON.stringify(contentTags) : '',
|
1477
|
-
position: position + '',
|
1478
|
-
contentId: (_v = (_u = data === null || data === void 0 ? void 0 : data.video) === null || _u === void 0 ? void 0 : _u.itemId) !== null && _v !== void 0 ? _v : '',
|
1479
|
-
ctatId: (_w = cta === null || cta === void 0 ? void 0 : cta.itemId) !== null && _w !== void 0 ? _w : '',
|
1480
|
-
traceInfo: (_9 = (_6 = (_4 = (_0 = (_x = traceInfo !== null && traceInfo !== void 0 ? traceInfo : product === null || product === void 0 ? void 0 : product.traceInfo) !== null && _x !== void 0 ? _x : (_z = (_y = data === null || data === void 0 ? void 0 : data.video) === null || _y === void 0 ? void 0 : _y.bindProduct) === null || _z === void 0 ? void 0 : _z.traceInfo) !== null && _0 !== void 0 ? _0 : (_3 = (_2 = (_1 = data === null || data === void 0 ? void 0 : data.video) === null || _1 === void 0 ? void 0 : _1.bindProducts) === null || _2 === void 0 ? void 0 : _2[0]) === null || _3 === void 0 ? void 0 : _3.traceInfo) !== null && _4 !== void 0 ? _4 : (_5 = data === null || data === void 0 ? void 0 : data.product) === null || _5 === void 0 ? void 0 : _5.traceInfo) !== null && _6 !== void 0 ? _6 : (_8 = (_7 = data === null || data === void 0 ? void 0 : data.video) === null || _7 === void 0 ? void 0 : _7.bindCta) === null || _8 === void 0 ? void 0 : _8.traceInfo) !== null && _9 !== void 0 ? _9 : ''
|
1481
|
-
}
|
1481
|
+
eventInfo: Object.assign({ eventSubject: 'jumpToWeb', eventDescription: 'User jumped to website', productId: (_v = product === null || product === void 0 ? void 0 : product.itemId) !== null && _v !== void 0 ? _v : '', productName: (_w = product === null || product === void 0 ? void 0 : product.title) !== null && _w !== void 0 ? _w : '', price: (product === null || product === void 0 ? void 0 : product.price) ? (product === null || product === void 0 ? void 0 : product.price) + '' : '0', productCollection: (_x = product === null || product === void 0 ? void 0 : product.collection) !== null && _x !== void 0 ? _x : '', fromKName, fromKPage: location === null || location === void 0 ? void 0 : location.href, contentTags: contentTags ? JSON.stringify(contentTags) : '', position: position + '', contentId: (_z = (_y = data === null || data === void 0 ? void 0 : data.video) === null || _y === void 0 ? void 0 : _y.itemId) !== null && _z !== void 0 ? _z : '', ctatId: (_0 = cta === null || cta === void 0 ? void 0 : cta.itemId) !== null && _0 !== void 0 ? _0 : '', traceInfo: (_13 = (_10 = (_8 = (_4 = (_1 = traceInfo !== null && traceInfo !== void 0 ? traceInfo : product === null || product === void 0 ? void 0 : product.traceInfo) !== null && _1 !== void 0 ? _1 : (_3 = (_2 = data === null || data === void 0 ? void 0 : data.video) === null || _2 === void 0 ? void 0 : _2.bindProduct) === null || _3 === void 0 ? void 0 : _3.traceInfo) !== null && _4 !== void 0 ? _4 : (_7 = (_6 = (_5 = data === null || data === void 0 ? void 0 : data.video) === null || _5 === void 0 ? void 0 : _5.bindProducts) === null || _6 === void 0 ? void 0 : _6[0]) === null || _7 === void 0 ? void 0 : _7.traceInfo) !== null && _8 !== void 0 ? _8 : (_9 = data === null || data === void 0 ? void 0 : data.product) === null || _9 === void 0 ? void 0 : _9.traceInfo) !== null && _10 !== void 0 ? _10 : (_12 = (_11 = data === null || data === void 0 ? void 0 : data.video) === null || _11 === void 0 ? void 0 : _11.bindCta) === null || _12 === void 0 ? void 0 : _12.traceInfo) !== null && _13 !== void 0 ? _13 : '' }, (contentFormat && { contentFormat }))
|
1482
1482
|
});
|
1483
1483
|
}, [bffEventReport, popupDetailData, isFromHashtag]);
|
1484
1484
|
const productView = React.useCallback((data, product, cta, viewTime, position) => {
|
@@ -1533,22 +1533,25 @@
|
|
1533
1533
|
* @Author: binruan@chatlabs.com
|
1534
1534
|
* @Date: 2024-06-27 16:22:34
|
1535
1535
|
* @LastEditors: binruan@chatlabs.com
|
1536
|
-
* @LastEditTime: 2024-
|
1536
|
+
* @LastEditTime: 2024-08-27 16:59:46
|
1537
1537
|
* @FilePath: \pb-sxp-ui\src\materials\sxp\popup\AppointForm\Form.tsx
|
1538
1538
|
*
|
1539
1539
|
*/
|
1540
1540
|
const Form = ({ layout, columns, onChange }) => {
|
1541
1541
|
return (React.createElement(React.Fragment, null, columns === null || columns === void 0 ? void 0 : columns.map((item, index) => (React.createElement("div", { key: index, className: 'pb-appoint-form-container-item', style: { flexDirection: layout === 'horizontal' ? 'row' : 'column' } },
|
1542
1542
|
layout !== 'inline' && React.createElement("label", { className: 'pb-appoint-form-container-label' }, item === null || item === void 0 ? void 0 : item.title),
|
1543
|
-
(item === null || item === void 0 ? void 0 : item.valueType) === 'text' && (React.createElement("input", Object.assign({ className: 'pb-appoint-form-container-input', type: 'text', placeholder: layout === 'inline' ? item === null || item === void 0 ? void 0 : item.title : '请输入', name: item === null || item === void 0 ? void 0 : item.dataIndex }, (onChange && { onChange
|
1543
|
+
(item === null || item === void 0 ? void 0 : item.valueType) === 'text' && (React.createElement("input", Object.assign({ className: 'pb-appoint-form-container-input', type: 'text', placeholder: layout === 'inline' ? item === null || item === void 0 ? void 0 : item.title : '请输入', name: item === null || item === void 0 ? void 0 : item.dataIndex }, (onChange && { onChange })))))))));
|
1544
1544
|
};
|
1545
1545
|
var Form$1 = React.memo(Form);
|
1546
1546
|
|
1547
1547
|
const AppointForm$1 = (_a) => {
|
1548
|
+
var _b, _c;
|
1548
1549
|
var { columns, style, title, textStyle, submitBgColor, submitColor, submitText, layoutType = 'inline', isExternalLink, isPopup, onClick, onClose, submitButtonStyle } = _a, props = __rest(_a, ["columns", "style", "title", "textStyle", "submitBgColor", "submitColor", "submitText", "layoutType", "isExternalLink", "isPopup", "onClick", "onClose", "submitButtonStyle"]);
|
1549
1550
|
const { submitForm, popupDetailData } = useSxpDataSource();
|
1550
1551
|
const { jumpToWeb } = useEventReport();
|
1551
1552
|
const [loading, setLoading] = React.useState(false);
|
1553
|
+
const [formData, setFormData] = React.useState({});
|
1554
|
+
const [marginTop, setMarginTop] = React.useState(0);
|
1552
1555
|
const defaultColumns = React.useMemo(() => [
|
1553
1556
|
{
|
1554
1557
|
title: '',
|
@@ -1575,7 +1578,7 @@
|
|
1575
1578
|
key: '4'
|
1576
1579
|
}
|
1577
1580
|
], []);
|
1578
|
-
const
|
1581
|
+
const originalHeight = ((_b = document === null || document === void 0 ? void 0 : document.documentElement) === null || _b === void 0 ? void 0 : _b.clientHeight) || ((_c = document === null || document === void 0 ? void 0 : document.body) === null || _c === void 0 ? void 0 : _c.clientHeight);
|
1579
1582
|
const columnsData = React.useMemo(() => {
|
1580
1583
|
return lodash.cloneDeep(columns) || defaultColumns;
|
1581
1584
|
}, [columns, defaultColumns]);
|
@@ -1584,17 +1587,17 @@
|
|
1584
1587
|
setFormData(Object.assign(Object.assign({}, formData), { [name]: value }));
|
1585
1588
|
}, [formData]);
|
1586
1589
|
const handleSubmit = lodash.debounce(() => __awaiter(void 0, void 0, void 0, function* () {
|
1587
|
-
var
|
1590
|
+
var _d, _e, _f, _g, _h;
|
1588
1591
|
const vals = formData;
|
1589
1592
|
if (!vals)
|
1590
1593
|
return;
|
1591
|
-
const arr = (
|
1594
|
+
const arr = (_e = (_d = Object.keys(vals)) === null || _d === void 0 ? void 0 : _d.map((key) => {
|
1592
1595
|
var _a;
|
1593
1596
|
return ({
|
1594
1597
|
name: key,
|
1595
1598
|
value: (_a = vals[key]) !== null && _a !== void 0 ? _a : ''
|
1596
1599
|
});
|
1597
|
-
})) === null ||
|
1600
|
+
})) === null || _e === void 0 ? void 0 : _e.filter((item) => item === null || item === void 0 ? void 0 : item.value);
|
1598
1601
|
if (!arr || !(arr === null || arr === void 0 ? void 0 : arr.length))
|
1599
1602
|
return;
|
1600
1603
|
setLoading(true);
|
@@ -1603,8 +1606,8 @@
|
|
1603
1606
|
if (res) {
|
1604
1607
|
if (isExternalLink) {
|
1605
1608
|
const data = popupDetailData;
|
1606
|
-
const product = (
|
1607
|
-
const cta = (
|
1609
|
+
const product = (_f = data === null || data === void 0 ? void 0 : data.video) === null || _f === void 0 ? void 0 : _f.bindProduct;
|
1610
|
+
const cta = (_h = (_g = data === null || data === void 0 ? void 0 : data.video) === null || _g === void 0 ? void 0 : _g.bindProduct) === null || _h === void 0 ? void 0 : _h.bindCta;
|
1608
1611
|
const position = popupDetailData === null || popupDetailData === void 0 ? void 0 : popupDetailData.index;
|
1609
1612
|
jumpToWeb(data, product, cta, position);
|
1610
1613
|
}
|
@@ -1614,11 +1617,33 @@
|
|
1614
1617
|
onClick === null || onClick === void 0 ? void 0 : onClick();
|
1615
1618
|
}
|
1616
1619
|
}), 1000);
|
1620
|
+
React.useEffect(() => {
|
1621
|
+
const handleScroll = () => {
|
1622
|
+
var _a, _b;
|
1623
|
+
// 获取用户代理字符串
|
1624
|
+
const userAgent = navigator.userAgent;
|
1625
|
+
// 判断是否是安卓设备
|
1626
|
+
const isAndroid = userAgent.toLowerCase().includes('android');
|
1627
|
+
if (!isAndroid)
|
1628
|
+
return;
|
1629
|
+
const resizeHeight = ((_a = document === null || document === void 0 ? void 0 : document.documentElement) === null || _a === void 0 ? void 0 : _a.clientHeight) || ((_b = document === null || document === void 0 ? void 0 : document.body) === null || _b === void 0 ? void 0 : _b.clientHeight);
|
1630
|
+
if (resizeHeight < originalHeight) {
|
1631
|
+
setMarginTop(50);
|
1632
|
+
}
|
1633
|
+
else {
|
1634
|
+
setMarginTop(0);
|
1635
|
+
}
|
1636
|
+
};
|
1637
|
+
window.addEventListener('resize', handleScroll);
|
1638
|
+
return () => {
|
1639
|
+
window.removeEventListener('resize', handleScroll);
|
1640
|
+
};
|
1641
|
+
}, []);
|
1617
1642
|
return (React.createElement("div", { className: 'pb-appoint-form' },
|
1618
1643
|
React.createElement("div", { className: `pb-appoint-form-title ${css.css(Object.assign({}, textStyle))}`, dangerouslySetInnerHTML: {
|
1619
1644
|
__html: setFontForText(title, textStyle)
|
1620
1645
|
} }),
|
1621
|
-
React.createElement("div", Object.assign({ className: css.css(Object.assign({}, style)) }, props),
|
1646
|
+
React.createElement("div", Object.assign({ className: css.css(Object.assign(Object.assign({}, style), { marginTop })) }, props),
|
1622
1647
|
React.createElement("div", { className: 'pb-appoint-form-container' },
|
1623
1648
|
React.createElement(Form$1, { columns: columnsData, layout: layoutType, onChange: handleChange }))),
|
1624
1649
|
React.createElement("div", { className: 'pb-appoint-form-btn-wrapper' },
|
@@ -2000,6 +2025,27 @@
|
|
2000
2025
|
name: ['props', 'iframeBgColor']
|
2001
2026
|
}
|
2002
2027
|
]
|
2028
|
+
},
|
2029
|
+
{
|
2030
|
+
title: '轮播指示器',
|
2031
|
+
child: [
|
2032
|
+
{
|
2033
|
+
label: '背景色',
|
2034
|
+
name: ['props', 'swiper', 'dotsBgColor'],
|
2035
|
+
type: 'Color'
|
2036
|
+
},
|
2037
|
+
{
|
2038
|
+
label: '选中色',
|
2039
|
+
name: ['props', 'swiper', 'dotsActiveColor'],
|
2040
|
+
type: 'Color'
|
2041
|
+
},
|
2042
|
+
{
|
2043
|
+
label: '底边距',
|
2044
|
+
name: ['props', 'swiper', 'dotsMarginBottom'],
|
2045
|
+
type: 'Number',
|
2046
|
+
addonAfter: 'px'
|
2047
|
+
}
|
2048
|
+
]
|
2003
2049
|
}
|
2004
2050
|
];
|
2005
2051
|
|
@@ -9207,10 +9253,10 @@
|
|
9207
9253
|
__html: setFontForText((_c = product === null || product === void 0 ? void 0 : product.taxInfo) !== null && _c !== void 0 ? _c : '税费', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.taxInfo)
|
9208
9254
|
} }),
|
9209
9255
|
React.createElement("div", { hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.info) || (product === null || product === void 0 ? void 0 : product.info) === '') },
|
9210
|
-
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: (_d = product === null || product === void 0 ? void 0 : product.info) !== null && _d !== void 0 ? _d : `The design inspiration of Tiffany Lock series comes from the power of connection and inclusiveness, and the
|
9211
|
-
bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
|
9212
|
-
collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
|
9213
|
-
necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
|
9256
|
+
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: (_d = product === null || product === void 0 ? void 0 : product.info) !== null && _d !== void 0 ? _d : `The design inspiration of Tiffany Lock series comes from the power of connection and inclusiveness, and the
|
9257
|
+
bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
|
9258
|
+
collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
|
9259
|
+
necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
|
9214
9260
|
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 }))));
|
9215
9261
|
};
|
9216
9262
|
const renderBtn = () => {
|
@@ -9259,7 +9305,21 @@
|
|
9259
9305
|
clickableClass: getDotsAlign
|
9260
9306
|
}, loop: true, autoplay: {
|
9261
9307
|
delay: (swiper === null || swiper === void 0 ? void 0 : swiper.delay) * 1000
|
9262
|
-
}, ref: ref },
|
9308
|
+
}, ref: ref, className: css.css(Object.assign(Object.assign(Object.assign({}, ((swiper === null || swiper === void 0 ? void 0 : swiper.dotsMarginBottom) && {
|
9309
|
+
'.swiper-pagination': {
|
9310
|
+
bottom: swiper === null || swiper === void 0 ? void 0 : swiper.dotsMarginBottom
|
9311
|
+
}
|
9312
|
+
})), ((swiper === null || swiper === void 0 ? void 0 : swiper.dotsBgColor) && {
|
9313
|
+
'.swiper-pagination-bullet': {
|
9314
|
+
backgroundColor: swiper === null || swiper === void 0 ? void 0 : swiper.dotsBgColor,
|
9315
|
+
opacity: 1
|
9316
|
+
}
|
9317
|
+
})), ((swiper === null || swiper === void 0 ? void 0 : swiper.dotsActiveColor) && {
|
9318
|
+
'.swipe-item-active-bullet': {
|
9319
|
+
backgroundColor: `${swiper === null || swiper === void 0 ? void 0 : swiper.dotsActiveColor}!important`,
|
9320
|
+
opacity: 1
|
9321
|
+
}
|
9322
|
+
}))) },
|
9263
9323
|
React.createElement(React.Fragment, null, (_x = product === null || product === void 0 ? void 0 : product.homePage) === null || _x === void 0 ? void 0 : _x.map((src) => {
|
9264
9324
|
var _a;
|
9265
9325
|
return (React.createElement(SwiperSlide, { key: src },
|
@@ -9648,7 +9708,7 @@
|
|
9648
9708
|
* @Author: binruan@chatlabs.com
|
9649
9709
|
* @Date: 2024-03-26 16:50:25
|
9650
9710
|
* @LastEditors: binruan@chatlabs.com
|
9651
|
-
* @LastEditTime: 2024-08-
|
9711
|
+
* @LastEditTime: 2024-08-28 19:08:24
|
9652
9712
|
* @FilePath: \pb-sxp-ui\src\materials\sxp\popup\CommodityDetailDiroNew\settingRender.tsx
|
9653
9713
|
*
|
9654
9714
|
*/
|
@@ -9963,6 +10023,27 @@
|
|
9963
10023
|
name: ['props', 'iframeBgColor']
|
9964
10024
|
}
|
9965
10025
|
]
|
10026
|
+
},
|
10027
|
+
{
|
10028
|
+
title: '轮播指示器',
|
10029
|
+
child: [
|
10030
|
+
{
|
10031
|
+
label: '背景色',
|
10032
|
+
name: ['props', 'swiper', 'dotsBgColor'],
|
10033
|
+
type: 'Color'
|
10034
|
+
},
|
10035
|
+
{
|
10036
|
+
label: '选中色',
|
10037
|
+
name: ['props', 'swiper', 'dotsActiveColor'],
|
10038
|
+
type: 'Color'
|
10039
|
+
},
|
10040
|
+
{
|
10041
|
+
label: '底边距',
|
10042
|
+
name: ['props', 'swiper', 'dotsMarginBottom'],
|
10043
|
+
type: 'Number',
|
10044
|
+
addonAfter: 'px'
|
10045
|
+
}
|
10046
|
+
]
|
9966
10047
|
}
|
9967
10048
|
];
|
9968
10049
|
|
@@ -10087,7 +10168,7 @@
|
|
10087
10168
|
const productInfoText = ({ isPost }) => {
|
10088
10169
|
return (React.createElement("div", { hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.info) || (product === null || product === void 0 ? void 0 : product.info) === '') },
|
10089
10170
|
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) ||
|
10090
|
-
`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
|
10171
|
+
`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
|
10091
10172
|
Made in Italy` })));
|
10092
10173
|
};
|
10093
10174
|
const getStyle = React.useCallback((style) => {
|
@@ -10129,7 +10210,21 @@ Made in Italy` })));
|
|
10129
10210
|
clickableClass: getDotsAlign
|
10130
10211
|
}, loop: true, autoplay: {
|
10131
10212
|
delay: (swiper === null || swiper === void 0 ? void 0 : swiper.delay) * 1000
|
10132
|
-
}, ref: ref }, (
|
10213
|
+
}, ref: ref, className: css.css(Object.assign(Object.assign(Object.assign({}, ((swiper === null || swiper === void 0 ? void 0 : swiper.dotsMarginBottom) && {
|
10214
|
+
'.swiper-pagination': {
|
10215
|
+
bottom: swiper === null || swiper === void 0 ? void 0 : swiper.dotsMarginBottom
|
10216
|
+
}
|
10217
|
+
})), ((swiper === null || swiper === void 0 ? void 0 : swiper.dotsBgColor) && {
|
10218
|
+
'.swiper-pagination-bullet': {
|
10219
|
+
backgroundColor: swiper === null || swiper === void 0 ? void 0 : swiper.dotsBgColor,
|
10220
|
+
opacity: 1
|
10221
|
+
}
|
10222
|
+
})), ((swiper === null || swiper === void 0 ? void 0 : swiper.dotsActiveColor) && {
|
10223
|
+
'.swipe-item-active-bullet': {
|
10224
|
+
backgroundColor: `${swiper === null || swiper === void 0 ? void 0 : swiper.dotsActiveColor}!important`,
|
10225
|
+
opacity: 1
|
10226
|
+
}
|
10227
|
+
}))) }, (_x = product === null || product === void 0 ? void 0 : product.homePage) === null || _x === void 0 ? void 0 : _x.map((src) => {
|
10133
10228
|
var _a;
|
10134
10229
|
return (React.createElement(SwiperSlide, { key: src },
|
10135
10230
|
React.createElement("div", { style: {
|
@@ -15737,7 +15832,7 @@ Made in Italy` })));
|
|
15737
15832
|
* @Author: lewinlu@chatlabs.com
|
15738
15833
|
* @Date: 2024-01-03 14:39:09
|
15739
15834
|
* @LastEditors: binruan@chatlabs.com
|
15740
|
-
* @LastEditTime: 2024-
|
15835
|
+
* @LastEditTime: 2024-08-29 09:34:13
|
15741
15836
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\PictureGroup\index.tsx
|
15742
15837
|
*/
|
15743
15838
|
const PictureGroup$2 = ({ imgUrls, width, height, rec, index, onReportViewImageEnd, onViewImageStartEvent, imgUrlsPostConfig }) => {
|
@@ -15771,10 +15866,20 @@ Made in Italy` })));
|
|
15771
15866
|
return (React.createElement(Swiper, { ref: ref, defaultValue: 0, direction: 'horizontal', modules: [Pagination, Autoplay], pagination: {
|
15772
15867
|
clickable: true,
|
15773
15868
|
bulletActiveClass: 'swipe-item-active-bullet'
|
15774
|
-
}, className: css.css(Object.assign({}, ((imgUrlsPostConfig === null || imgUrlsPostConfig === void 0 ? void 0 : imgUrlsPostConfig.marginBottom) && {
|
15869
|
+
}, className: css.css(Object.assign(Object.assign(Object.assign({}, ((imgUrlsPostConfig === null || imgUrlsPostConfig === void 0 ? void 0 : imgUrlsPostConfig.marginBottom) && {
|
15775
15870
|
'.swiper-pagination': {
|
15776
15871
|
bottom: (_a = imgUrlsPostConfig === null || imgUrlsPostConfig === void 0 ? void 0 : imgUrlsPostConfig.marginBottom) !== null && _a !== void 0 ? _a : 0
|
15777
15872
|
}
|
15873
|
+
})), ((imgUrlsPostConfig === null || imgUrlsPostConfig === void 0 ? void 0 : imgUrlsPostConfig.dotsBgColor) && {
|
15874
|
+
'.swiper-pagination-bullet': {
|
15875
|
+
backgroundColor: imgUrlsPostConfig === null || imgUrlsPostConfig === void 0 ? void 0 : imgUrlsPostConfig.dotsBgColor,
|
15876
|
+
opacity: 1
|
15877
|
+
}
|
15878
|
+
})), ((imgUrlsPostConfig === null || imgUrlsPostConfig === void 0 ? void 0 : imgUrlsPostConfig.dotsActiveColor) && {
|
15879
|
+
'.swipe-item-active-bullet': {
|
15880
|
+
backgroundColor: `${imgUrlsPostConfig === null || imgUrlsPostConfig === void 0 ? void 0 : imgUrlsPostConfig.dotsActiveColor}!important`,
|
15881
|
+
opacity: 1
|
15882
|
+
}
|
15778
15883
|
}))), height: height, loop: true, autoplay: { delay: ((_b = imgUrlsPostConfig === null || imgUrlsPostConfig === void 0 ? void 0 : imgUrlsPostConfig.delay) !== null && _b !== void 0 ? _b : 3) * 1000 } }, imgUrls === null || imgUrls === void 0 ? void 0 : imgUrls.map((url, index) => {
|
15779
15884
|
return (React.createElement(SwiperSlide, { key: index },
|
15780
15885
|
React.createElement(Picture, { src: !isLoad && index > 0 ? '' : url, height: height, imgUrlsPostConfig: imgUrlsPostConfig, onShowFirstImage: showFirstImageFn })));
|
@@ -16029,7 +16134,7 @@ Made in Italy` })));
|
|
16029
16134
|
* @Author: binruan@chatlabs.com
|
16030
16135
|
* @Date: 2024-01-15 19:03:09
|
16031
16136
|
* @LastEditors: binruan@chatlabs.com
|
16032
|
-
* @LastEditTime: 2024-08-
|
16137
|
+
* @LastEditTime: 2024-08-28 19:13:38
|
16033
16138
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\index.tsx
|
16034
16139
|
*
|
16035
16140
|
*/
|
@@ -16046,7 +16151,7 @@ Made in Italy` })));
|
|
16046
16151
|
const [isShowMore, setIsShowMore] = React.useState(false);
|
16047
16152
|
const [isReload, setIsReload] = React.useState(new Date().getTime());
|
16048
16153
|
const skipLinkRef = React.useRef(false);
|
16049
|
-
const { loadVideos, bffEventReport, loading, setPopupDetailData, ctaEvent, swiperRef, waterFallData, setOpenHashtag, appDomain, openHashtag, loadingImage, isFromHashtag, popupDetailData, bffFbReport, curTime, h5EnterLink, isShowConsent, selectTag, isPreview, isEditor, cacheRtcList, setRtcList, cacheActiveIndex, rtcList } = useSxpDataSource();
|
16154
|
+
const { loadVideos, bffEventReport, loading, setPopupDetailData, ctaEvent, swiperRef, waterFallData, setOpenHashtag, appDomain, openHashtag, loadingImage, isFromHashtag, popupDetailData, bffFbReport, curTime, h5EnterLink, isShowConsent, selectTag, isPreview, isEditor, cacheRtcList, setRtcList, cacheActiveIndex, rtcList, isNoMoreData } = useSxpDataSource();
|
16050
16155
|
const { backMainFeed, productView, jumpToWeb } = useEventReport();
|
16051
16156
|
const isShowFingerTip = React.useMemo(() => {
|
16052
16157
|
return data.length > 0 && !loading && (getFeUserId() || (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enableSwiperTip));
|
@@ -16205,8 +16310,8 @@ Made in Italy` })));
|
|
16205
16310
|
return null;
|
16206
16311
|
}
|
16207
16312
|
});
|
16208
|
-
return !waterFallData ? list.concat([{ loading: true }]) : list;
|
16209
|
-
}, [data, activeIndex, waterFallData, isEditor]);
|
16313
|
+
return !waterFallData && !isNoMoreData ? list.concat([{ loading: true }]) : list;
|
16314
|
+
}, [data, activeIndex, waterFallData, isEditor, isNoMoreData]);
|
16210
16315
|
const renderLogo = React.useMemo(() => {
|
16211
16316
|
var _a, _b, _c, _d;
|
16212
16317
|
if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl) && (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLogo)) {
|
@@ -16525,9 +16630,14 @@ Made in Italy` })));
|
|
16525
16630
|
return;
|
16526
16631
|
if ((swiper === null || swiper === void 0 ? void 0 : swiper.activeIndex) + 1 >= (data === null || data === void 0 ? void 0 : data.length)) {
|
16527
16632
|
if (!isLoadMore) {
|
16633
|
+
let pageNum = 2;
|
16528
16634
|
setIsLoadMore(true);
|
16529
|
-
loadVideos === null || loadVideos === void 0 ? void 0 : loadVideos(
|
16635
|
+
loadVideos === null || loadVideos === void 0 ? void 0 : loadVideos(pageNum).then((res) => {
|
16636
|
+
var _a;
|
16530
16637
|
setIsLoadMore(false);
|
16638
|
+
if (res && ((_a = res === null || res === void 0 ? void 0 : res.recList) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
16639
|
+
pageNum++;
|
16640
|
+
}
|
16531
16641
|
});
|
16532
16642
|
}
|
16533
16643
|
}
|