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.
Files changed (47) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +111 -111
  3. package/dist/index.cjs +166 -56
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.js +166 -56
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.min.cjs +3 -3
  8. package/dist/index.min.cjs.map +1 -1
  9. package/dist/index.min.js +3 -3
  10. package/dist/index.min.js.map +1 -1
  11. package/dist/pb-ui.js +166 -56
  12. package/dist/pb-ui.js.map +1 -1
  13. package/dist/pb-ui.min.js +3 -3
  14. package/dist/pb-ui.min.js.map +1 -1
  15. package/es/core/components/SxpPageRender/PictureGroup/index.js +11 -1
  16. package/es/core/components/SxpPageRender/index.d.ts +2 -0
  17. package/es/core/components/SxpPageRender/index.js +9 -4
  18. package/es/core/context/SxpDataSourceProvider.d.ts +2 -1
  19. package/es/core/context/SxpDataSourceProvider.js +22 -15
  20. package/es/core/hooks/useEventReport.js +9 -16
  21. package/es/materials/sxp/popup/AppointForm/Form.js +1 -1
  22. package/es/materials/sxp/popup/AppointForm/index.js +31 -8
  23. package/es/materials/sxp/popup/CommodityDetail/index.d.ts +3 -0
  24. package/es/materials/sxp/popup/CommodityDetail/index.js +19 -5
  25. package/es/materials/sxp/popup/CommodityDetail/settingRender.d.ts +13 -0
  26. package/es/materials/sxp/popup/CommodityDetail/settingRender.js +21 -0
  27. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +3 -0
  28. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +16 -2
  29. package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +13 -0
  30. package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +21 -0
  31. package/lib/core/components/SxpPageRender/PictureGroup/index.js +11 -1
  32. package/lib/core/components/SxpPageRender/index.d.ts +2 -0
  33. package/lib/core/components/SxpPageRender/index.js +9 -4
  34. package/lib/core/context/SxpDataSourceProvider.d.ts +2 -1
  35. package/lib/core/context/SxpDataSourceProvider.js +22 -15
  36. package/lib/core/hooks/useEventReport.js +9 -16
  37. package/lib/materials/sxp/popup/AppointForm/Form.js +1 -1
  38. package/lib/materials/sxp/popup/AppointForm/index.js +30 -7
  39. package/lib/materials/sxp/popup/CommodityDetail/index.d.ts +3 -0
  40. package/lib/materials/sxp/popup/CommodityDetail/index.js +19 -5
  41. package/lib/materials/sxp/popup/CommodityDetail/settingRender.d.ts +13 -0
  42. package/lib/materials/sxp/popup/CommodityDetail/settingRender.js +21 -0
  43. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +3 -0
  44. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +16 -2
  45. package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +13 -0
  46. package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +21 -0
  47. 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 _r, _s, _t, _u, _v, _w;
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: (_k = result === null || result === void 0 ? void 0 : result.data) === null || _k === void 0 ? void 0 : _k.rtc, requestId: (_l = result === null || result === void 0 ? void 0 : result.data) === null || _l === void 0 ? void 0 : _l.requestId });
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 _x, _y, _z, _0;
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 }, (((_x = lastItem === null || lastItem === void 0 ? void 0 : lastItem.product) === null || _x === void 0 ? void 0 : _x.itemId) && { productFilter: (_y = lastItem === null || lastItem === void 0 ? void 0 : lastItem.product) === null || _y === void 0 ? void 0 : _y.itemId })), (((_z = lastItem === null || lastItem === void 0 ? void 0 : lastItem.video) === null || _z === void 0 ? void 0 : _z.itemId) && { contentFilter: (_0 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.video) === null || _0 === void 0 ? void 0 : _0.itemId })), { themeTag: themeTag.current }), ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enablePreview) && !isEditor && { pageNum })));
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')}` })), { client_user_agent: (_d = (_c = window === null || window === void 0 ? void 0 : window.navigator) === null || _c === void 0 ? void 0 : _c.userAgent) !== null && _d !== void 0 ? _d : '' })
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 _1, _2, _3, _4, _5;
847
+ var _3, _4, _5, _6, _7;
842
848
  if (!utmVal || !isShowTag)
843
849
  return;
844
850
  try {
845
- const val = (_3 = (_2 = (_1 = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _1 === void 0 ? void 0 : _1.filter((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 || _2 === void 0 ? void 0 : _2.join('&')) !== null && _3 !== void 0 ? _3 : '';
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((_5 = (_4 = result === null || result === void 0 ? void 0 : result.data) === null || _4 === void 0 ? void 0 : _4.tags) !== null && _5 !== void 0 ? _5 : []);
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-22 17:43:04
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-07-05 14:55:25
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: 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 [formData, setFormData] = React.useState({});
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 _b, _c, _d, _e, _f;
1590
+ var _d, _e, _f, _g, _h;
1588
1591
  const vals = formData;
1589
1592
  if (!vals)
1590
1593
  return;
1591
- const arr = (_c = (_b = Object.keys(vals)) === null || _b === void 0 ? void 0 : _b.map((key) => {
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 || _c === void 0 ? void 0 : _c.filter((item) => item === null || item === void 0 ? void 0 : item.value);
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 = (_d = data === null || data === void 0 ? void 0 : data.video) === null || _d === void 0 ? void 0 : _d.bindProduct;
1607
- const cta = (_f = (_e = data === null || data === void 0 ? void 0 : data.video) === null || _e === void 0 ? void 0 : _e.bindProduct) === null || _f === void 0 ? void 0 : _f.bindCta;
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-23 10:58:38
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 }, (_x = product === null || product === void 0 ? void 0 : product.homePage) === null || _x === void 0 ? void 0 : _x.map((src) => {
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-07-02 18:25:17
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-23 14:04:14
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(Math.ceil(activeIndex / 10) + 1).then(() => {
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
  }