@conecli/cone-render 0.10.1-shop3.5 → 0.10.1-shop3.6

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 (36) hide show
  1. package/dist/common/const.ts +1 -1
  2. package/dist/common/index.h5.ts +1 -1
  3. package/dist/common/index.jd.ts +1 -1
  4. package/dist/common/index.ts +1 -1
  5. package/dist/common/index.weapp.ts +1 -1
  6. package/dist/components/base/CommonFloorHead/index.module.scss +126 -111
  7. package/dist/components/base/CommonFloorHead/index.tsx +1 -1
  8. package/dist/components/base/CustomScrollView/index-back.tsx +1 -0
  9. package/dist/components/base/CustomScrollView/index.tsx +1 -1
  10. package/dist/components/base/Dialog/index.module.scss +11 -0
  11. package/dist/components/base/InViewRender/index.tsx +1 -1
  12. package/dist/components/floorItem.weapp.tsx +1 -1
  13. package/dist/interface/common.ts +1 -1
  14. package/dist/jumpEventReport/const.ts +1 -1
  15. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  16. package/dist/jumpEventReport/web.jd.ts +1 -1
  17. package/dist/libs/taroAppReport.js +2 -2
  18. package/dist/modules/ContainerFloorList/index.h5.module.scss +66 -56
  19. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  20. package/dist/modules/ContainerFloorList/index.tsx +1 -1
  21. package/dist/open/api/shopMember.ts +1 -1
  22. package/dist/sass/app.h5.scss +252 -224
  23. package/dist/service/fetchGateway.ts +1 -1
  24. package/dist/service/fetchGateway.weapp.ts +1 -0
  25. package/dist/service/http/colorSign.ts +1 -1
  26. package/dist/service/http/const.ts +1 -1
  27. package/dist/service/http/h5Http.ts +1 -1
  28. package/dist/service/requestServer.h5.ts +1 -1
  29. package/dist/service/requestServer.ts +1 -1
  30. package/dist/utils/h5Utils.ts +1 -1
  31. package/dist/utils/index.h5.ts +1 -1
  32. package/dist/utils/index.ts +1 -1
  33. package/dist/utils/index.weapp.ts +1 -1
  34. package/dist/utils/jumpExtMapUtil.js +1 -0
  35. package/dist/utils/utils.ts +1 -1
  36. package/package.json +1 -1
@@ -1,148 +1,163 @@
1
1
  .d-root {
2
- position: relative;
3
- width: 100%;
4
- margin-bottom: -24px;
5
- background-color: #ffffff;
2
+ position: relative;
3
+ width: 100%;
4
+ margin-bottom: -24px;
5
+ background-color: #ffffff;
6
6
  }
7
7
 
8
8
  .d-content-wrap {
9
- position: absolute;
10
- // display: flex;
11
- // align-items: center;
12
- top: 0;
13
- left: 0;
14
- width: 100%;
15
- height: 96px;
16
- // height: 100%;
17
-
18
- &.d-has-title-bg {
19
- background-size: cover;
20
-
21
- .d-text {
22
- // margin-top: -14px;
23
- color: #ffffff;
24
- }
25
-
26
- .d-sub-text {
27
- // margin-top: -8px;
28
- color: #ffffff;
29
- }
30
-
31
- .d-content {
32
- bottom: 40px;
33
- }
34
- }
35
-
36
- &.d-type-is-img {
37
- .d-content {
38
- bottom: 44%; // 当图片标题类型渲染时,兼容新老数据,下发的图片高度会有几个尺寸,所以这里改成百分比
39
- }
40
- }
41
-
42
- .d-text {
43
- // margin-top: 16px;
44
- margin-left: 20px;
45
- font-family: 'PingFang SC';
46
- font-size: 32px;
47
- // line-height: 32px;
48
- font-weight: bold;
49
- color: #1a1a1a;
50
-
51
- // hack修复在使用overflowhidden(为了实现过长自动出现省略号)前提下,某些字体,例如PingFang SC,默认行高时,基线和底线部分的字体内容(例如:jpqy)有可能显示不完整的问题
52
- position: relative;
53
- top: 2px;
54
- padding-bottom: 2px;
9
+ position: absolute;
10
+ // display: flex;
11
+ // align-items: center;
12
+ top: 0;
13
+ left: 0;
14
+ width: 100%;
15
+ height: 96px;
16
+ // height: 100%;
17
+
18
+ &.d-has-title-bg {
19
+ background-size: cover;
20
+
21
+ .d-text {
22
+ // margin-top: -14px;
23
+ color: #ffffff;
24
+ }
25
+
26
+ .d-sub-text {
27
+ // margin-top: -8px;
28
+ color: #ffffff;
29
+ }
30
+
31
+ .d-content {
32
+ bottom: 40px;
33
+ }
34
+ }
35
+
36
+ &.d-type-is-img {
37
+ .d-content {
38
+ bottom: 44%; // 当图片标题类型渲染时,兼容新老数据,下发的图片高度会有几个尺寸,所以这里改成百分比
39
+ }
40
+ }
41
+
42
+ .d-text {
43
+ // margin-top: 16px;
44
+ margin-left: 20px;
45
+ font-family: 'PingFang SC';
46
+ font-size: 32px;
47
+ // line-height: 32px;
48
+ font-weight: bold;
49
+ color: #1a1a1a;
50
+
51
+ // hack修复在使用overflowhidden(为了实现过长自动出现省略号)前提下,某些字体,例如PingFang SC,默认行高时,基线和底线部分的字体内容(例如:jpqy)有可能显示不完整的问题
52
+ position: relative;
53
+ top: 2px;
54
+ padding-bottom: 2px;
55
55
  // 文字titile行高不够被遮盖问题 比如“g”字母
56
56
  line-height: 1.3;
57
- }
58
-
59
- .d-vertical-line {
60
- position: relative;
61
- top: -4px;
62
- width: 1px;
63
- height: 24px;
64
- margin-left: 12px;
65
- opacity: 0.3;
66
- background: #ffffff;
67
- }
68
-
69
- .d-sub-text {
70
- position: relative;
71
- top: -2px;
72
- margin-left: 12px;
73
- font-family: 'PingFang SC';
74
- font-size: 24px;
75
- color: #808080;
76
- }
57
+ }
58
+
59
+ .d-vertical-line {
60
+ position: relative;
61
+ top: -4px;
62
+ width: 1px;
63
+ height: 24px;
64
+ margin-left: 12px;
65
+ opacity: 0.3;
66
+ background: #ffffff;
67
+ }
68
+
69
+ .d-sub-text {
70
+ position: relative;
71
+ top: -2px;
72
+ margin-left: 12px;
73
+ font-family: 'PingFang SC';
74
+ font-size: 24px;
75
+ color: #808080;
76
+ }
77
77
  }
78
78
 
79
79
  .d-content-wrap-relative {
80
- position: relative;
80
+ position: relative;
81
81
  }
82
82
 
83
83
  .d-content {
84
- position: absolute;
85
- bottom: 22px;
86
- width: 100%;
87
- display: flex;
88
- justify-content: space-between;
89
- align-items: flex-end;
84
+ position: absolute;
85
+ bottom: 22px;
86
+ width: 100%;
87
+ display: flex;
88
+ justify-content: space-between;
89
+ align-items: flex-end;
90
90
  }
91
91
 
92
92
  .d-content-left {
93
- flex: 1;
94
- display: flex;
95
- justify-content: flex-start;
96
- align-items: flex-end;
97
- max-width: calc(100% - 108px);
93
+ flex: 1;
94
+ display: flex;
95
+ justify-content: flex-start;
96
+ align-items: flex-end;
97
+ max-width: calc(100% - 108px);
98
98
  }
99
99
 
100
100
  .d-content-right {
101
- display: flex;
102
- align-items: flex-end;
103
- flex-shrink: 0;
101
+ display: flex;
102
+ align-items: flex-end;
103
+ flex-shrink: 0;
104
104
  }
105
105
 
106
106
  .d-title-more {
107
- position: relative;
108
- top: 16px;
109
- display: flex;
110
- align-items: flex-end;
111
- height: 56px;
112
- padding-bottom: 20px;
113
- padding-left: 20px;
114
- padding-right: 20px;
107
+ position: relative;
108
+ top: 16px;
109
+ display: flex;
110
+ align-items: flex-end;
111
+ height: 56px;
112
+ padding-bottom: 20px;
113
+ padding-left: 20px;
114
+ padding-right: 20px;
115
115
  }
116
116
 
117
117
  .d-title-more-text {
118
- font-family: 'PingFang SC';
119
- font-size: 24px;
120
- color: #808080;
121
- display: flex;
122
- align-items: center;
123
- font-weight: normal;
118
+ font-family: 'PingFang SC';
119
+ font-size: 24px;
120
+ color: #808080;
121
+ display: flex;
122
+ align-items: center;
123
+ font-weight: normal;
124
124
  }
125
125
 
126
126
  .d-title-more-text-white {
127
- color: #ffffff;
127
+ color: #ffffff;
128
128
  }
129
129
 
130
130
  .d-title-more-arrow {
131
- position: relative;
132
- top: -4px;
133
- width: 12px;
134
- height: 20px;
135
- margin-left: 10px;
131
+ position: relative;
132
+ top: -4px;
133
+ width: 12px;
134
+ height: 20px;
135
+ margin-left: 10px;
136
136
  }
137
137
 
138
138
  .d-img {
139
- width: 100%;
140
- display: block;
141
- // height: auto;
142
- height: 96px;
143
- background: no-repeat top/100% auto;
139
+ width: 100%;
140
+ display: block;
141
+ // height: auto;
142
+ height: 96px;
143
+ background: no-repeat top/100% auto;
144
144
  }
145
145
 
146
146
  .d-place-holder {
147
- height: 24px;
147
+ height: 24px;
148
+ }
149
+
150
+ :global {
151
+ .d-shop-pad {
152
+ :local {
153
+ .d-root {
154
+ .d-content-wrap-for-img {
155
+ height: 164px;
156
+ }
157
+ .d-img-bg {
158
+ height: 164px;
159
+ }
160
+ }
161
+ }
162
+ }
148
163
  }
@@ -1 +1 @@
1
- import React, { useMemo } from 'react'
2
1
  key: 1,
2
+ import React, { useMemo } from 'react';
3
3
  'https://m.360buyimg.com/imagetools/jfs/t1/170321/15/27425/230/61c1839aE0514462b/0b4d278fe18d91bb.png';
4
4
  'https://m.360buyimg.com/imagetools/jfs/t1/94671/2/26921/257/623d630aE681512e3/ded2e640c4a0a7ea.png';
5
5
  const getLogInfo = ReportContainerData.getReportClickFloorInfo(
6
6
  floorData,
7
7
  dataDefines,
8
8
  {
9
9
  clickArea: `title`,
10
10
  skuid: ``,
11
11
  tagList: [],
12
12
  labelList: [],
13
13
  pos: ``,
14
14
  },
15
15
  {
16
16
  la_p: ``,
17
17
  },
18
18
  );
19
19
  if (config) {
20
20
  JumpEventReport.jdJumpConfigUrl(config, {
21
21
  eventId: `TerminatorNew_${floorData.floorExtInfo?.moduleFlag}_Click`,
22
22
  jsonParam: getLogInfo,
23
23
  });
24
24
  }
25
25
  dataDefines,
26
26
  floorData,
27
27
  oldModuleFloorTitle,
28
28
  titleText,
29
29
  titleMoreClick,
30
30
  additionalRenderContent,
31
31
  customClassName,
32
32
  const floorTitleDataDefine = dataDefines
33
33
  ? dataDefines.filter((item) => {
34
34
  return item.type === 'floorTitle';
35
35
  })
36
36
  : [];
37
37
  const floorTitle = oldModuleFloorTitle
38
38
  ? oldModuleFloorTitle
39
39
  : (floorTitleDataDefine[0]?.nodeText?.data ?? {});
40
40
  const { detail, imageUrl, text, textBackground, type: floorTitleType = 1, subText } = floorTitle;
41
41
  if (floorTitleType === 1) {
42
42
  return null;
43
43
  }
44
44
  const bgMap = {
45
45
  '1': null,
46
46
  '2': textBackground || '',
47
47
  '3': imageUrl || '',
48
48
  };
49
49
  const useFloorTitleBgImg = bgMap[floorTitleType];
50
50
  return (
51
51
  <View
52
52
  className={classNames(styles['d-root'], customClassName)}
53
53
  onClick={floorTitleType === 3 ? gotoMPage.bind(this, dataDefines, floorData, detail) : {}}
54
54
  >
55
55
  <View
56
56
  className={classNames(styles['d-img'], {
57
57
  [styles['d-img-bg']]: useFloorTitleBgImg,
58
58
  })}
59
59
  style={useFloorTitleBgImg ? { backgroundImage: `url(${useFloorTitleBgImg})` } : {}}
60
60
  />
61
61
  <View
62
62
  className={classNames(
63
63
  styles['d-content-wrap'],
64
64
  floorTitleType === 2 && textBackground ? styles['d-has-title-bg'] : null,
65
65
  floorTitleType === 3 ? styles['d-type-is-img'] : null,
66
66
  useFloorTitleBgImg ? styles['d-content-wrap-for-img'] : null,
67
67
  )}
68
68
  >
69
69
  <View className={classNames(styles['d-content'], 'd-content')}>
70
70
  <View className={styles['d-content-left']}>
71
71
  {floorTitleType === 2 && text ? (
72
72
  <Text className={classNames(styles['d-text'], 'text-ellipsis')}>
73
73
  {titleText ? titleText : text}
74
74
  </Text>
75
75
  ) : null}
76
76
  {floorTitleType === 2 && subText
77
77
  ? [
78
78
  textBackground ? <View key={1} className={styles['d-vertical-line']} /> : null,
79
79
  <Text key={2} className={styles['d-sub-text']}>
80
80
  {subText}
81
81
  </Text>,
82
82
  ]
83
83
  : null}
84
84
  {additionalRenderContent ? additionalRenderContent(textBackground) : null}
85
85
  </View>
86
86
  <View className={styles['d-content-right']}>
87
87
  {titleMoreClick ? (
88
88
  <View
89
89
  className={styles['d-title-more']}
90
90
  onClick={(e) => {
91
91
  typeof titleMoreClick === 'function' && titleMoreClick(e);
92
92
  e.stopPropagation();
93
93
  }}
94
94
  >
95
95
  <Text
96
96
  className={classNames(
97
97
  styles['d-title-more-text'],
98
98
  textBackground || floorTitleType === 3
99
99
  ? styles['d-title-more-text-white']
100
100
  : null,
101
101
  )}
102
102
  >
103
103
  更多
104
104
  </Text>
105
105
  <Image
106
106
  className={styles['d-title-more-arrow']}
107
107
  src={textBackground || floorTitleType === 3 ? ICON_ARROW_WHITE : ICON_ARROW_GRAY}
108
108
  mode="widthFix"
109
109
  />
110
110
  </View>
111
111
  ) : null}
112
112
  </View>
113
113
  </View>
114
114
  </View>
115
115
  </View>
116
116
  );
117
117
  return useMemo(() => {
118
118
  return <CommonFloorHeader {...props} />;
119
119
  }, [props.key]);
120
120
  titleText: null,
121
121
  titleMoreClick: null,
122
122
  additionalRenderContent: null,
123
123
  customClassName: null,
124
124
  key: 1,
@@ -0,0 +1 @@
1
+ import React, { useRef, useEffect } from 'react';
2
  isH5AndJdShopView,
1
3
  isAndroidDevice,
2
4
  isJdAndAndroidDevice,
3
5
  isJdAndIosDevice,
4
6
  isIosDevice,
5
7
  isJdApp,
6
8
  isWxMin,
7
9
  isH5AndJdShopViewH5Scroll,
8
10
  isH5AndJdShopH5CustomScrollView,
9
11
  isH5,
10
12
  isAppClassifyPage,
11
13
  lodashThrottle,
12
14
  START: 'start',
13
15
  MOVE: 'move',
14
16
  END: 'end',
15
17
  const {
16
18
  style = {},
17
19
  scrollX = false,
18
20
  scrollY = false,
19
21
  scrollWithAnimation = true,
20
22
  iosNeedDisableVertical = false,
21
23
  className = null,
22
24
  dispatchTouchMove = true,
23
25
  children,
24
26
  ...otherProps
25
27
  } = props;
26
28
  const rootEleNode = isH5 && document?.querySelector('body');
27
29
  const needShowHighVersion =
28
30
  isH5AndJdShopViewH5Scroll && global.info.queryInfo?.downgraded !== 'true';
29
31
  const mLastClientPosRef = useRef({
30
32
  mLastClientX: 0,
31
33
  mLastClientY: 0,
32
34
  });
33
35
  const isJdAndH5ScrollState = needShowHighVersion || isH5AndJdShopH5CustomScrollView;
34
36
 
35
37
  const touchstartEventBubbleFunc = (e) => {
36
38
  const isH5SwiperCustomEle = e?.target?.closest('.J_h5SwiperCustom');
37
39
  if (!isH5SwiperCustomEle) {
38
40
  const hasCustomEle = e
39
41
  ? e?.target?.closest('.J_customScroll') || e?.target?.closest('.J_customLayout')
40
42
  : false;
41
43
  if (isJdAndAndroidDevice && !hasCustomEle) {
42
44
  window.JdAndroid && window.JdAndroid.requestEvent(false);
43
45
  }
44
46
  !hasCustomEle &&
45
47
  rootEleNode &&
46
48
  rootEleNode.classList.contains('over-hidden') &&
47
49
  rootEleNode.classList.remove('over-hidden');
48
50
  }
49
51
  };
50
52
  const touchstartEventCaptureFunc = (e) => {
51
53
  if (e && !e?.target?.closest('.J_h5SwiperCustom') && !e?.target?.closest('.J_customLayout')) {
52
54
  rootEleNode &&
53
55
  rootEleNode.classList.contains('over-hidden') &&
54
56
  rootEleNode.classList.remove('over-hidden');
55
57
  }
56
58
  };
57
59
  useEffect(() => {
58
60
  isJdApp &&
59
61
  !window.JDJshopViewInfo.getAndroidTouchSlopState &&
60
62
  nativePageGetScaledTouchSlop((res) => {
61
63
  console.log('获取安卓系统滑动阈值', res);
62
64
  window.JDJshopViewInfo.androidTouchSlop = res;
63
65
  window.JDJshopViewInfo.getAndroidTouchSlopState = true;
64
66
  });
65
67
  if (isJdAndH5ScrollState && rootEleNode && !rootEleAddEventListenerState) {
66
68
  global?.removeJdAndroidRquestEventForTouchStart &&
67
69
  global.removeJdAndroidRquestEventForTouchStart();
68
70
  rootEleNode.addEventListener('touchstart', touchstartEventBubbleFunc, false);
69
71
 
70
72
  rootEleNode.addEventListener('touchstart', touchstartEventCaptureFunc, true);
71
73
  rootEleAddEventListenerState = true;
72
74
  console.log('customScrollView 初始化document监听完成');
73
75
  }
74
76
  return () => {
75
77
  if (isJdAndH5ScrollState && rootEleNode && rootEleAddEventListenerState) {
76
78
  console.log('customScrollView document监听取消完成');
77
79
  rootEleNode.removeEventListener('touchstart', touchstartEventBubbleFunc, false);
78
80
  rootEleNode.removeEventListener('touchstart', touchstartEventCaptureFunc, true);
79
81
  }
80
82
  };
81
83
  }, []);
82
84
 
83
85
  const androidDeviceStopNativeScrollEvent = (touchType) => {
84
86
  isJdApp &&
85
87
  isAndroidDevice &&
86
88
  window?.JdAndroid &&
87
89
  window?.JdAndroid.requestEvent(touchType === TouchType.START);
88
90
  };
89
91
  const iosDeviceStopNativeScrollEvent = (e, touchType, sendIosState = true) => {
90
92
  sendIosState && iosDeviceSendRouter(touchType);
91
93
  };
92
94
 
93
95
  const iosDeviceSendRouter = (state: string) => {
94
96
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage?.({
95
97
  method: 'callRouterModuleWithParams',
96
98
  params: {
97
99
  routerURL: 'router://JDShopModule/processShoph5SlideState',
98
100
  routerParam: {
99
101
  slideDirection: 'horizontal',
100
102
  needDisableVertical: `${iosNeedDisableVertical}`,
101
103
  state,
102
104
  },
103
105
  callBackId: new Date().getTime(),
104
106
  },
105
107
  });
106
108
  };
107
109
  const stopNativeScrollEvent = (e: Event, touchType, sendIosState = true) => {
108
110
  if (isJdApp) {
109
111
  if (isIosDevice && !isAppClassifyPage) {
110
112
  iosDeviceStopNativeScrollEvent(e, touchType, sendIosState);
111
113
  } else if (isAndroidDevice) {
112
114
  androidDeviceStopNativeScrollEvent(touchType);
113
115
  }
114
116
  }
115
117
  };
116
118
 
117
119
  const GetSlideAngle = (dx, dy) => {
118
120
  return (Math.atan2(dy, dx) * 180) / Math.PI;
119
121
  };
120
122
 
121
123
  const GetSlideDirection = (startX, startY, endX, endY) => {
122
124
  const dy = startY - endY;
123
125
  const dx = endX - startX;
124
126
  let result = 0;
125
127
  if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {
126
128
  return result;
127
129
  }
128
130
  const angle = GetSlideAngle(dx, dy);
129
131
  if (angle >= -45 && angle < 45) {
130
132
  result = 4;
131
133
  } else if (angle >= 45 && angle < 135) {
132
134
  result = 1;
133
135
  } else if (angle >= -135 && angle < -45) {
134
136
  result = 2;
135
137
  } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {
136
138
  result = 3;
137
139
  }
138
140
  return result;
139
141
  };
140
142
  const changeTouchStart = (e) => {
141
143
  if (isJdApp) {
142
144
  stopNativeScrollEvent(e, TouchType.START, !iosNeedDisableVertical);
143
145
  if (isH5AndJdShopView || isH5AndJdShopH5CustomScrollView) {
144
146
  isJdAndH5ScrollState && rootEleNode && rootEleNode.classList.add('over-hidden');
145
147
  const touchEvent = e?.originalEvent?.targetTouches[0] || e?.targetTouches[0];
146
148
  mLastClientPosRef.current.mLastClientX = touchEvent.clientX;
147
149
  mLastClientPosRef.current.mLastClientY = touchEvent.clientY;
148
150
  }
149
151
  }
150
152
  };
151
153
  const changeTouchEnd = (e) => {
152
154
  stopNativeScrollEvent(e, TouchType.END);
153
155
  mLastClientPosRef.current.mLastClientX = 0;
154
156
  mLastClientPosRef.current.mLastClientY = 0;
155
157
  };
156
158
  const triggerIosTouchMove = () => {
157
159
  isJdAndIosDevice && iosDeviceStopNativeScrollEvent(null, TouchType.START, true);
158
160
  };
159
161
 
160
162
  const lodashThrottleTriggerIosTouchMove = lodashThrottle(triggerIosTouchMove, 500);
161
163
 
162
164
  const recoverRootEleVerticalScroll = (touchEvent) => {
163
165
  const direction = GetSlideDirection(
164
166
  mLastClientPosRef.current.mLastClientX,
165
167
  mLastClientPosRef.current.mLastClientY,
166
168
  touchEvent.clientX,
167
169
  touchEvent.clientY,
168
170
  );
169
171
  if (direction === 1 || direction === 2) {
170
172
  rootEleNode &&
171
173
  rootEleNode.classList.contains('over-hidden') &&
172
174
  rootEleNode.classList.remove('over-hidden');
173
175
  }
174
176
  };
175
177
  const changeTouchMove = (e) => {
176
178
  if (isH5AndJdShopView || isH5AndJdShopH5CustomScrollView) {
177
179
  const touchEvent = e?.originalEvent?.targetTouches[0] || e?.targetTouches[0];
178
180
  const xDiff = Math.abs(touchEvent.clientX - mLastClientPosRef.current.mLastClientX).toFixed(
179
181
  2,
180
182
  );
181
183
  const yDiff = Math.abs(touchEvent.clientY - mLastClientPosRef.current.mLastClientY).toFixed(
182
184
  2,
183
185
  );
184
186
  if (isJdApp) {
185
187
  if (xDiff >= window.JDJshopViewInfo.androidTouchSlop) {
186
188
  iosNeedDisableVertical && isJdApp && lodashThrottleTriggerIosTouchMove();
187
189
  } else if (yDiff > window.JDJshopViewInfo.androidTouchSlop) {
188
190
  stopNativeScrollEvent(e, TouchType.END);
189
191
  }
190
192
  }
191
193
  isJdAndH5ScrollState && recoverRootEleVerticalScroll(touchEvent);
192
194
  }
193
195
  if (!dispatchTouchMove) {
194
196
  return;
195
197
  }
196
198
  const parentNode = e.target?.parentNode;
197
199
  if (!parentNode) {
198
200
  return;
199
201
  }
200
202
  const event = new TouchEvent('touchmove', e);
201
203
  parentNode.dispatchEvent(event);
202
204
  };
203
205
  if (scrollX && isJdApp && !isIgnorePreventNative) {
204
206
  return (
205
207
  <ScrollView
206
208
  scrollX
207
209
  onTouchStart={changeTouchStart}
208
210
  onTouchEnd={changeTouchEnd}
209
211
  onTouchCancel={changeTouchEnd}
210
212
  onTouchMove={changeTouchMove}
211
213
  enhanced
212
214
  showScrollbar={false}
213
215
  style={style}
214
216
  className={classNames(
215
217
  className,
216
218
  {
217
219
  [customScrollViewStyle['d-custom-ios-h5-extend-border-radius']]: isIosDevice,
218
220
  },
219
221
  'J_customScroll',
220
222
  )}
221
223
  scrollY
222
224
  scrollWithAnimation
223
225
  {...otherProps}
224
226
  >
225
227
  {children}
226
228
  </ScrollView>
227
229
  );
228
230
  } else {
229
231
  return (
230
232
  <ScrollView
231
233
  scrollX
232
234
  scrollY
233
235
  scrollWithAnimation
234
236
  enhanced
235
237
  showScrollbar={false}
236
238
  {...otherProps}
237
239
  className={classNames(
238
240
  className,
239
241
  {
240
242
  [customScrollViewStyle['d-custom-ios-mini-extend-border-radius']]:
241
243
  isIosDevice && isWxMin && scrollX && style['borderRadius'],
242
244
  },
243
245
  {
244
246
  [customScrollViewStyle['d-custom-ios-h5-extend-border-radius']]: isIosDevice,
245
247
  },
246
248
  {
247
249
  [customScrollViewStyle['d-custom-mini-hide-scroll']]: isWxMin,
248
250
  },
249
251
  )}
250
252
  style={style}
251
253
  >
252
254
  {children}
253
255
  </ScrollView>
254
256
  );
255
257
  }