taro-ui 3.3.3 → 3.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 (312) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +85 -0
  3. package/dist/common/utils.d.ts +2 -1
  4. package/dist/common/utils.js +3 -0
  5. package/dist/common/utils.js.map +1 -1
  6. package/dist/components/accordion/index.d.ts +16 -13
  7. package/dist/components/accordion/index.js +77 -97
  8. package/dist/components/accordion/index.js.map +1 -1
  9. package/dist/components/action-sheet/body/index.d.ts +2 -4
  10. package/dist/components/action-sheet/body/index.js +8 -6
  11. package/dist/components/action-sheet/body/index.js.map +1 -1
  12. package/dist/components/action-sheet/body/item/index.d.ts +7 -7
  13. package/dist/components/action-sheet/body/item/index.js +14 -14
  14. package/dist/components/action-sheet/body/item/index.js.map +1 -1
  15. package/dist/components/action-sheet/footer/index.d.ts +7 -7
  16. package/dist/components/action-sheet/footer/index.js +14 -17
  17. package/dist/components/action-sheet/footer/index.js.map +1 -1
  18. package/dist/components/action-sheet/header/index.d.ts +2 -4
  19. package/dist/components/action-sheet/header/index.js +8 -9
  20. package/dist/components/action-sheet/header/index.js.map +1 -1
  21. package/dist/components/action-sheet/index.d.ts +12 -13
  22. package/dist/components/action-sheet/index.js +53 -57
  23. package/dist/components/action-sheet/index.js.map +1 -1
  24. package/dist/components/activity-indicator/index.d.ts +12 -6
  25. package/dist/components/activity-indicator/index.js +19 -22
  26. package/dist/components/activity-indicator/index.js.map +1 -1
  27. package/dist/components/avatar/index.d.ts +14 -8
  28. package/dist/components/avatar/index.js +36 -43
  29. package/dist/components/avatar/index.js.map +1 -1
  30. package/dist/components/badge/index.d.ts +11 -8
  31. package/dist/components/badge/index.js +18 -34
  32. package/dist/components/badge/index.js.map +1 -1
  33. package/dist/components/button/index.d.ts +29 -14
  34. package/dist/components/button/index.js +97 -112
  35. package/dist/components/button/index.js.map +1 -1
  36. package/dist/components/calendar/body/index.d.ts +3 -26
  37. package/dist/components/calendar/body/index.js +215 -235
  38. package/dist/components/calendar/body/index.js.map +1 -1
  39. package/dist/components/calendar/controller/index.d.ts +3 -5
  40. package/dist/components/calendar/controller/index.js +47 -43
  41. package/dist/components/calendar/controller/index.js.map +1 -1
  42. package/dist/components/calendar/index.d.ts +3 -20
  43. package/dist/components/calendar/index.js +219 -201
  44. package/dist/components/calendar/index.js.map +1 -1
  45. package/dist/components/calendar/ui/date-list/index.d.ts +2 -6
  46. package/dist/components/calendar/ui/date-list/index.js +36 -41
  47. package/dist/components/calendar/ui/date-list/index.js.map +1 -1
  48. package/dist/components/calendar/ui/day-list/index.d.ts +2 -4
  49. package/dist/components/calendar/ui/day-list/index.js +6 -5
  50. package/dist/components/calendar/ui/day-list/index.js.map +1 -1
  51. package/dist/components/card/index.d.ts +15 -7
  52. package/dist/components/card/index.js +42 -43
  53. package/dist/components/card/index.js.map +1 -1
  54. package/dist/components/checkbox/index.d.ts +11 -7
  55. package/dist/components/checkbox/index.js +30 -35
  56. package/dist/components/checkbox/index.js.map +1 -1
  57. package/dist/components/config-provider/context.d.ts +6 -0
  58. package/dist/components/config-provider/context.js +13 -0
  59. package/dist/components/config-provider/context.js.map +1 -0
  60. package/dist/components/config-provider/index.d.ts +7 -0
  61. package/dist/components/config-provider/index.js +15 -0
  62. package/dist/components/config-provider/index.js.map +1 -0
  63. package/dist/components/countdown/index.d.ts +19 -19
  64. package/dist/components/countdown/index.js +183 -118
  65. package/dist/components/countdown/index.js.map +1 -1
  66. package/dist/components/countdown/item/index.d.ts +8 -7
  67. package/dist/components/countdown/item/index.js +10 -13
  68. package/dist/components/countdown/item/index.js.map +1 -1
  69. package/dist/components/curtain/index.d.ts +11 -8
  70. package/dist/components/curtain/index.js +36 -45
  71. package/dist/components/curtain/index.js.map +1 -1
  72. package/dist/components/divider/index.d.ts +13 -6
  73. package/dist/components/divider/index.js +29 -38
  74. package/dist/components/divider/index.js.map +1 -1
  75. package/dist/components/drawer/index.d.ts +13 -15
  76. package/dist/components/drawer/index.js +100 -93
  77. package/dist/components/drawer/index.js.map +1 -1
  78. package/dist/components/fab/index.d.ts +8 -7
  79. package/dist/components/fab/index.js +16 -16
  80. package/dist/components/fab/index.js.map +1 -1
  81. package/dist/components/flex/index.d.ts +11 -5
  82. package/dist/components/flex/index.js +17 -18
  83. package/dist/components/flex/index.js.map +1 -1
  84. package/dist/components/flex/item/index.d.ts +11 -5
  85. package/dist/components/flex/item/index.js +17 -18
  86. package/dist/components/flex/item/index.js.map +1 -1
  87. package/dist/components/float-layout/index.d.ts +20 -12
  88. package/dist/components/float-layout/index.js +56 -72
  89. package/dist/components/float-layout/index.js.map +1 -1
  90. package/dist/components/form/index.d.ts +11 -8
  91. package/dist/components/form/index.js +28 -28
  92. package/dist/components/form/index.js.map +1 -1
  93. package/dist/components/grid/index.d.ts +22 -7
  94. package/dist/components/grid/index.js +61 -66
  95. package/dist/components/grid/index.js.map +1 -1
  96. package/dist/components/icon/index.d.ts +13 -7
  97. package/dist/components/icon/index.js +24 -34
  98. package/dist/components/icon/index.js.map +1 -1
  99. package/dist/components/image-picker/index.d.ts +19 -9
  100. package/dist/components/image-picker/index.js +83 -102
  101. package/dist/components/image-picker/index.js.map +1 -1
  102. package/dist/components/indexes/index.d.ts +16 -28
  103. package/dist/components/indexes/index.js +198 -209
  104. package/dist/components/indexes/index.js.map +1 -1
  105. package/dist/components/input/index.d.ts +37 -15
  106. package/dist/components/input/index.js +152 -161
  107. package/dist/components/input/index.js.map +1 -1
  108. package/dist/components/input-number/index.d.ts +20 -11
  109. package/dist/components/input-number/index.js +107 -126
  110. package/dist/components/input-number/index.js.map +1 -1
  111. package/dist/components/list/index.d.ts +7 -6
  112. package/dist/components/list/index.js +15 -15
  113. package/dist/components/list/index.js.map +1 -1
  114. package/dist/components/list/item/index.d.ts +27 -9
  115. package/dist/components/list/item/index.js +89 -117
  116. package/dist/components/list/item/index.js.map +1 -1
  117. package/dist/components/load-more/index.d.ts +15 -7
  118. package/dist/components/load-more/index.js +29 -50
  119. package/dist/components/load-more/index.js.map +1 -1
  120. package/dist/components/loading/index.d.ts +8 -7
  121. package/dist/components/loading/index.js +14 -20
  122. package/dist/components/loading/index.js.map +1 -1
  123. package/dist/components/message/index.d.ts +9 -14
  124. package/dist/components/message/index.js +45 -59
  125. package/dist/components/message/index.js.map +1 -1
  126. package/dist/components/modal/action/index.d.ts +7 -6
  127. package/dist/components/modal/action/index.js +15 -15
  128. package/dist/components/modal/action/index.js.map +1 -1
  129. package/dist/components/modal/content/index.d.ts +2 -4
  130. package/dist/components/modal/content/index.js +8 -6
  131. package/dist/components/modal/content/index.js.map +1 -1
  132. package/dist/components/modal/header/index.d.ts +2 -4
  133. package/dist/components/modal/header/index.js +8 -6
  134. package/dist/components/modal/header/index.js.map +1 -1
  135. package/dist/components/modal/index.d.ts +16 -14
  136. package/dist/components/modal/index.js +63 -77
  137. package/dist/components/modal/index.js.map +1 -1
  138. package/dist/components/nav-bar/index.d.ts +20 -10
  139. package/dist/components/nav-bar/index.js +146 -162
  140. package/dist/components/nav-bar/index.js.map +1 -1
  141. package/dist/components/noticebar/index.d.ts +17 -15
  142. package/dist/components/noticebar/index.js +115 -128
  143. package/dist/components/noticebar/index.js.map +1 -1
  144. package/dist/components/pagination/index.d.ts +13 -11
  145. package/dist/components/pagination/index.js +64 -120
  146. package/dist/components/pagination/index.js.map +1 -1
  147. package/dist/components/progress/index.d.ts +11 -5
  148. package/dist/components/progress/index.js +39 -36
  149. package/dist/components/progress/index.js.map +1 -1
  150. package/dist/components/radio/index.d.ts +11 -7
  151. package/dist/components/radio/index.js +29 -33
  152. package/dist/components/radio/index.js.map +1 -1
  153. package/dist/components/range/index.d.ts +19 -21
  154. package/dist/components/range/index.js +146 -153
  155. package/dist/components/range/index.js.map +1 -1
  156. package/dist/components/rate/index.d.ts +13 -7
  157. package/dist/components/rate/index.js +47 -62
  158. package/dist/components/rate/index.js.map +1 -1
  159. package/dist/components/search-bar/index.d.ts +23 -15
  160. package/dist/components/search-bar/index.js +120 -146
  161. package/dist/components/search-bar/index.js.map +1 -1
  162. package/dist/components/segmented-control/index.d.ts +14 -7
  163. package/dist/components/segmented-control/index.js +52 -66
  164. package/dist/components/segmented-control/index.js.map +1 -1
  165. package/dist/components/slider/index.d.ts +21 -12
  166. package/dist/components/slider/index.js +66 -90
  167. package/dist/components/slider/index.js.map +1 -1
  168. package/dist/components/steps/index.d.ts +11 -7
  169. package/dist/components/steps/index.js +43 -48
  170. package/dist/components/steps/index.js.map +1 -1
  171. package/dist/components/swipe-action/index.d.ts +12 -25
  172. package/dist/components/swipe-action/index.js +118 -115
  173. package/dist/components/swipe-action/index.js.map +1 -1
  174. package/dist/components/swipe-action/options/index.d.ts +2 -4
  175. package/dist/components/swipe-action/options/index.js +18 -17
  176. package/dist/components/swipe-action/options/index.js.map +1 -1
  177. package/dist/components/switch/index.d.ts +14 -7
  178. package/dist/components/switch/index.js +36 -41
  179. package/dist/components/switch/index.js.map +1 -1
  180. package/dist/components/tab-bar/index.d.ts +17 -7
  181. package/dist/components/tab-bar/index.js +108 -135
  182. package/dist/components/tab-bar/index.js.map +1 -1
  183. package/dist/components/tabs/index.d.ts +17 -23
  184. package/dist/components/tabs/index.js +185 -174
  185. package/dist/components/tabs/index.js.map +1 -1
  186. package/dist/components/tabs-pane/index.d.ts +11 -6
  187. package/dist/components/tabs-pane/index.js +26 -28
  188. package/dist/components/tabs-pane/index.js.map +1 -1
  189. package/dist/components/tag/index.d.ts +14 -7
  190. package/dist/components/tag/index.js +31 -40
  191. package/dist/components/tag/index.js.map +1 -1
  192. package/dist/components/textarea/index.d.ts +29 -11
  193. package/dist/components/textarea/index.js +72 -92
  194. package/dist/components/textarea/index.js.map +1 -1
  195. package/dist/components/timeline/index.d.ts +9 -6
  196. package/dist/components/timeline/index.js +50 -56
  197. package/dist/components/timeline/index.js.map +1 -1
  198. package/dist/components/toast/img.json +3 -6
  199. package/dist/components/toast/index.d.ts +16 -15
  200. package/dist/components/toast/index.js +85 -94
  201. package/dist/components/toast/index.js.map +1 -1
  202. package/dist/hooks/useComponentLocale.d.ts +2 -0
  203. package/dist/hooks/useComponentLocale.js +12 -0
  204. package/dist/hooks/useComponentLocale.js.map +1 -0
  205. package/dist/index.d.ts +3 -0
  206. package/dist/index.esm.js +4006 -4404
  207. package/dist/index.esm.js.map +1 -1
  208. package/dist/index.js +4032 -4434
  209. package/dist/index.js.map +1 -1
  210. package/dist/locale/en_US.d.ts +3 -0
  211. package/dist/locale/en_US.js +34 -0
  212. package/dist/locale/en_US.js.map +1 -0
  213. package/dist/locale/index.d.ts +4 -0
  214. package/dist/locale/index.js +10 -0
  215. package/dist/locale/index.js.map +1 -0
  216. package/dist/locale/types.d.ts +34 -0
  217. package/dist/locale/types.js +1 -0
  218. package/dist/locale/types.js.map +1 -0
  219. package/dist/locale/zh_CN.d.ts +3 -0
  220. package/dist/locale/zh_CN.js +34 -0
  221. package/dist/locale/zh_CN.js.map +1 -0
  222. package/dist/style/components/avatar.scss +1 -1
  223. package/dist/style/components/badge.scss +7 -2
  224. package/dist/style/components/calendar.scss +1 -1
  225. package/dist/style/components/countdown.scss +2 -1
  226. package/dist/style/components/flex.scss +1 -1
  227. package/dist/style/components/grid.scss +2 -2
  228. package/dist/style/components/icon.scss +302 -101
  229. package/dist/style/components/input.scss +2 -2
  230. package/dist/style/components/progress.scss +1 -1
  231. package/dist/style/components/search-bar.scss +1 -1
  232. package/dist/style/components/steps.scss +2 -2
  233. package/dist/style/components/tabs.scss +1 -1
  234. package/dist/style/components/tag.scss +1 -1
  235. package/dist/style/components/timeline.scss +1 -1
  236. package/dist/style/components/toast.scss +7 -3
  237. package/dist/style/index.css +176 -176
  238. package/dist/style/index.css.map +1 -1
  239. package/dist/style/mixins/libs/hairline.scss +4 -19
  240. package/dist/style/mixins/libs/shade.scss +3 -6
  241. package/dist/style/mixins/libs/tint.scss +4 -7
  242. package/dist/style/themes/purple.scss +15 -15
  243. package/dist/style/themes/red.scss +16 -13
  244. package/dist/style/variables/default.scss +69 -73
  245. package/package.json +5 -3
  246. package/rn/components/accordion/index.tsx +2 -9
  247. package/rn/components/action-sheet/body/index.tsx +1 -3
  248. package/rn/components/action-sheet/body/item/index.tsx +1 -3
  249. package/rn/components/action-sheet/footer/index.tsx +1 -3
  250. package/rn/components/action-sheet/header/index.tsx +1 -3
  251. package/rn/components/activity-indicator/index.tsx +1 -3
  252. package/rn/components/avatar/index.tsx +5 -5
  253. package/rn/components/calendar/controller/index.tsx +2 -7
  254. package/rn/components/card/index.tsx +4 -4
  255. package/rn/components/countdown/index.scss +5 -4
  256. package/rn/components/countdown/item/index.tsx +1 -3
  257. package/rn/components/curtain/index.tsx +5 -5
  258. package/rn/components/flex/index.scss +2 -2
  259. package/rn/components/flex/item/index.scss +2 -2
  260. package/rn/components/grid/index.tsx +15 -15
  261. package/rn/components/icon/index.tsx +4 -4
  262. package/rn/components/image-picker/index.tsx +7 -7
  263. package/rn/components/pagination/index.tsx +7 -7
  264. package/rn/components/progress/index.tsx +5 -5
  265. package/rn/components/radio/index.tsx +7 -7
  266. package/rn/components/rate/index.tsx +4 -4
  267. package/rn/components/segmented-control/index.tsx +8 -8
  268. package/rn/components/slider/index.tsx +9 -9
  269. package/rn/components/steps/index.tsx +8 -8
  270. package/rn/components/swipe-action/options/index.tsx +1 -3
  271. package/rn/components/switch/index.tsx +2 -9
  272. package/rn/components/toast/img.json +3 -6
  273. package/rn/components/toast/index.tsx +8 -8
  274. package/rn/style/components/accordion.scss +1 -1
  275. package/rn/style/components/action-sheet.scss +1 -1
  276. package/rn/style/components/avatar.scss +1 -1
  277. package/rn/style/components/badge.scss +8 -3
  278. package/rn/style/components/button.scss +1 -1
  279. package/rn/style/components/calendar.scss +1 -1
  280. package/rn/style/components/checkbox.scss +1 -1
  281. package/rn/style/components/curtain.scss +1 -1
  282. package/rn/style/components/fab.scss +1 -4
  283. package/rn/style/components/flex.scss +1 -1
  284. package/rn/style/components/grid.scss +2 -6
  285. package/rn/style/components/icon.scss +302 -101
  286. package/rn/style/components/index.scss +41 -41
  287. package/rn/style/components/input.scss +1 -1
  288. package/rn/style/components/list.scss +2 -4
  289. package/rn/style/components/loading.scss +4 -4
  290. package/rn/style/components/message.scss +1 -1
  291. package/rn/style/components/modal.scss +0 -2
  292. package/rn/style/components/nav-bar.scss +3 -3
  293. package/rn/style/components/noticebar.scss +0 -4
  294. package/rn/style/components/progress.scss +1 -1
  295. package/rn/style/components/radio.scss +2 -2
  296. package/rn/style/components/range.scss +1 -1
  297. package/rn/style/components/search-bar.scss +1 -1
  298. package/rn/style/components/segmented-control.scss +4 -1
  299. package/rn/style/components/slider.scss +0 -1
  300. package/rn/style/components/steps.scss +3 -3
  301. package/rn/style/components/switch.scss +0 -1
  302. package/rn/style/components/tabs.scss +2 -2
  303. package/rn/style/components/tag.scss +1 -1
  304. package/rn/style/components/timeline.scss +0 -2
  305. package/rn/style/components/toast.scss +5 -2
  306. package/rn/style/index.scss +1 -1
  307. package/rn/style/mixins/libs/hairline.scss +4 -22
  308. package/rn/style/mixins/libs/shade.scss +1 -4
  309. package/rn/style/mixins/libs/tint.scss +2 -5
  310. package/rn/style/themes/purple.scss +15 -15
  311. package/rn/style/themes/red.scss +16 -13
  312. package/rn/style/variables/default.scss +69 -73
@@ -1,176 +1,87 @@
1
1
  import classnames from "classnames";
2
2
  import dayjs from "dayjs";
3
- import React from "react";
3
+ import React, { useEffect, useRef, useState } from "react";
4
4
  import { Swiper, SwiperItem, View } from "@tarojs/components";
5
5
  import { delayQuerySelector } from "../../../common/utils";
6
6
  import generateCalendarGroup from "../common/helper";
7
7
  import AtCalendarDateList from "../ui/date-list/index";
8
8
  import AtCalendarDayList from "../ui/day-list/index";
9
9
  const ANIMTE_DURATION = 300;
10
- const defaultProps = {
11
- marks: [],
12
- selectedDate: {
10
+ function AtCalendarBody({
11
+ marks = [],
12
+ selectedDate = {
13
13
  end: Date.now(),
14
14
  start: Date.now()
15
15
  },
16
- format: "YYYY-MM-DD",
17
- generateDate: Date.now()
18
- };
19
- class AtCalendarBody extends React.Component {
20
- constructor(props) {
21
- super(props);
22
- this.changeCount = 0;
23
- this.currentSwiperIndex = 1;
24
- this.startX = 0;
25
- this.swipeStartPoint = 0;
26
- this.isPreMonth = false;
27
- this.maxWidth = 0;
28
- this.isTouching = false;
29
- this.getGroups = (generateDate, selectedDate) => {
30
- const dayjsDate = dayjs(generateDate);
31
- const arr = [];
32
- const preList = this.generateFunc(
33
- dayjsDate.subtract(1, "month").valueOf(),
34
- selectedDate
35
- );
36
- const nowList = this.generateFunc(
37
- generateDate,
38
- selectedDate,
39
- true
40
- );
41
- const nextList = this.generateFunc(
42
- dayjsDate.add(1, "month").valueOf(),
43
- selectedDate
44
- );
45
- const preListIndex = this.currentSwiperIndex === 0 ? 2 : this.currentSwiperIndex - 1;
46
- const nextListIndex = this.currentSwiperIndex === 2 ? 0 : this.currentSwiperIndex + 1;
47
- arr[preListIndex] = preList;
48
- arr[nextListIndex] = nextList;
49
- arr[this.currentSwiperIndex] = nowList;
50
- return arr;
51
- };
52
- this.handleTouchStart = (e) => {
53
- if (!this.props.isSwiper) {
54
- return;
55
- }
56
- this.isTouching = true;
57
- this.startX = e.touches[0].clientX;
58
- };
59
- this.handleTouchMove = (e) => {
60
- if (!this.props.isSwiper) {
61
- return;
62
- }
63
- if (!this.isTouching) return;
64
- const { clientX } = e.touches[0];
65
- const offsetSize = clientX - this.startX;
66
- this.setState({
67
- offsetSize
68
- });
69
- };
70
- this.animateMoveSlide = (offset, callback) => {
71
- this.setState(
72
- {
73
- isAnimate: true
74
- },
75
- () => {
76
- this.setState({
77
- offsetSize: offset
78
- });
79
- setTimeout(() => {
80
- this.setState(
81
- {
82
- isAnimate: false
83
- },
84
- () => {
85
- callback == null ? void 0 : callback();
86
- }
87
- );
88
- }, ANIMTE_DURATION);
89
- }
90
- );
91
- };
92
- this.handleTouchEnd = () => {
93
- if (!this.props.isSwiper) {
94
- return;
95
- }
96
- const { offsetSize } = this.state;
97
- this.isTouching = false;
98
- const isRight = offsetSize > 0;
99
- const breakpoint = this.maxWidth / 2;
100
- const absOffsetSize = Math.abs(offsetSize);
101
- if (absOffsetSize > breakpoint) {
102
- const res = isRight ? this.maxWidth : -this.maxWidth;
103
- return this.animateMoveSlide(res, () => {
104
- this.props.onSwipeMonth(isRight ? -1 : 1);
105
- });
106
- }
107
- this.animateMoveSlide(0);
108
- };
109
- this.handleChange = (e) => {
110
- const { current, source } = e.detail;
111
- if (source === "touch") {
112
- this.currentSwiperIndex = current;
113
- this.changeCount += 1;
114
- }
115
- };
116
- this.handleAnimateFinish = () => {
117
- if (this.changeCount > 0) {
118
- this.props.onSwipeMonth(
119
- this.isPreMonth ? -this.changeCount : this.changeCount
120
- );
121
- this.changeCount = 0;
122
- }
123
- };
124
- this.handleSwipeTouchStart = (e) => {
125
- const { clientY, clientX } = e.changedTouches[0];
126
- this.swipeStartPoint = this.props.isVertical ? clientY : clientX;
127
- };
128
- this.handleSwipeTouchEnd = (e) => {
129
- const { clientY, clientX } = e.changedTouches[0];
130
- this.isPreMonth = this.props.isVertical ? clientY - this.swipeStartPoint > 0 : clientX - this.swipeStartPoint > 0;
131
- };
132
- const {
133
- validDates,
134
- marks,
135
- format,
136
- minDate,
137
- maxDate,
138
- generateDate,
139
- selectedDate,
140
- selectedDates
141
- } = props;
142
- this.generateFunc = generateCalendarGroup({
16
+ format = "YYYY-MM-DD",
17
+ generateDate = Date.now(),
18
+ validDates,
19
+ minDate,
20
+ maxDate,
21
+ selectedDates,
22
+ isSwiper,
23
+ isVertical,
24
+ onDayClick,
25
+ onLongClick,
26
+ onSwipeMonth
27
+ }) {
28
+ const changeCountRef = useRef(0);
29
+ const currentSwiperIndexRef = useRef(1);
30
+ const startXRef = useRef(0);
31
+ const swipeStartPointRef = useRef(0);
32
+ const isPreMonthRef = useRef(false);
33
+ const maxWidthRef = useRef(0);
34
+ const isTouchingRef = useRef(false);
35
+ const generateFuncRef = useRef(
36
+ generateCalendarGroup({
143
37
  validDates,
144
38
  format,
145
39
  minDate,
146
40
  maxDate,
147
41
  marks,
148
42
  selectedDates
149
- });
150
- const listGroup = this.getGroups(generateDate, selectedDate);
151
- this.state = {
152
- listGroup,
153
- offsetSize: 0,
154
- isAnimate: false
155
- };
156
- }
157
- componentDidMount() {
43
+ })
44
+ );
45
+ const getGroups = (genDate, selDate) => {
46
+ const dayjsDate = dayjs(genDate);
47
+ const arr = [];
48
+ const preList = generateFuncRef.current(
49
+ dayjsDate.subtract(1, "month").valueOf(),
50
+ selDate
51
+ );
52
+ const nowList = generateFuncRef.current(
53
+ genDate,
54
+ selDate,
55
+ true
56
+ );
57
+ const nextList = generateFuncRef.current(
58
+ dayjsDate.add(1, "month").valueOf(),
59
+ selDate
60
+ );
61
+ const preListIndex = currentSwiperIndexRef.current === 0 ? 2 : currentSwiperIndexRef.current - 1;
62
+ const nextListIndex = currentSwiperIndexRef.current === 2 ? 0 : currentSwiperIndexRef.current + 1;
63
+ arr[preListIndex] = preList;
64
+ arr[nextListIndex] = nextList;
65
+ arr[currentSwiperIndexRef.current] = nowList;
66
+ return arr;
67
+ };
68
+ const [listGroup, setListGroup] = useState(
69
+ () => getGroups(generateDate, selectedDate)
70
+ );
71
+ const [offsetSize, setOffsetSize] = useState(0);
72
+ const [isAnimate, setIsAnimate] = useState(false);
73
+ useEffect(() => {
158
74
  delayQuerySelector(".at-calendar-slider__main").then((res) => {
159
- this.maxWidth = res[0].width;
75
+ maxWidthRef.current = res[0].width;
160
76
  });
161
- }
162
- UNSAFE_componentWillReceiveProps(nextProps) {
163
- const {
164
- validDates,
165
- marks,
166
- format,
167
- minDate,
168
- maxDate,
169
- generateDate,
170
- selectedDate,
171
- selectedDates
172
- } = nextProps;
173
- this.generateFunc = generateCalendarGroup({
77
+ }, []);
78
+ const isMountedRef = useRef(false);
79
+ useEffect(() => {
80
+ if (!isMountedRef.current) {
81
+ isMountedRef.current = true;
82
+ return;
83
+ }
84
+ generateFuncRef.current = generateCalendarGroup({
174
85
  validDates,
175
86
  format,
176
87
  minDate,
@@ -178,75 +89,86 @@ class AtCalendarBody extends React.Component {
178
89
  marks,
179
90
  selectedDates
180
91
  });
181
- const listGroup = this.getGroups(generateDate, selectedDate);
182
- this.setState({
183
- offsetSize: 0,
184
- listGroup
92
+ const nextListGroup = getGroups(generateDate, selectedDate);
93
+ setOffsetSize(0);
94
+ setListGroup(nextListGroup);
95
+ }, [
96
+ validDates,
97
+ marks,
98
+ format,
99
+ minDate,
100
+ maxDate,
101
+ generateDate,
102
+ selectedDate,
103
+ selectedDates
104
+ ]);
105
+ const handleTouchStart = (e) => {
106
+ if (!isSwiper) {
107
+ return;
108
+ }
109
+ isTouchingRef.current = true;
110
+ startXRef.current = e.touches[0].clientX;
111
+ };
112
+ const handleTouchMove = (e) => {
113
+ if (!isSwiper) {
114
+ return;
115
+ }
116
+ if (!isTouchingRef.current) return;
117
+ const { clientX } = e.touches[0];
118
+ const nextOffsetSize = clientX - startXRef.current;
119
+ setOffsetSize(nextOffsetSize);
120
+ };
121
+ const animateMoveSlide = (offset, callback) => {
122
+ setIsAnimate(true);
123
+ Promise.resolve().then(() => {
124
+ setOffsetSize(offset);
125
+ setTimeout(() => {
126
+ setIsAnimate(false);
127
+ callback == null ? void 0 : callback();
128
+ }, ANIMTE_DURATION);
185
129
  });
186
- }
187
- render() {
188
- const { isSwiper } = this.props;
189
- const { isAnimate, offsetSize, listGroup } = this.state;
130
+ };
131
+ const handleTouchEnd = () => {
190
132
  if (!isSwiper) {
191
- return /* @__PURE__ */ React.createElement(
192
- View,
193
- {
194
- className: classnames(
195
- "main",
196
- "at-calendar-slider__main",
197
- `at-calendar-slider__main--${process.env.TARO_ENV}`
198
- )
199
- },
200
- /* @__PURE__ */ React.createElement(AtCalendarDayList, null),
201
- /* @__PURE__ */ React.createElement(View, { className: "main__body body" }, /* @__PURE__ */ React.createElement(View, { className: "body__slider body__slider--now" }, /* @__PURE__ */ React.createElement(
202
- AtCalendarDateList,
203
- {
204
- list: listGroup[1].list,
205
- onClick: this.props.onDayClick,
206
- onLongClick: this.props.onLongClick
207
- }
208
- )))
209
- );
133
+ return;
210
134
  }
211
- if (process.env.TARO_ENV === "h5") {
212
- return /* @__PURE__ */ React.createElement(
213
- View,
214
- {
215
- className: classnames(
216
- "main",
217
- "at-calendar-slider__main",
218
- `at-calendar-slider__main--${process.env.TARO_ENV}`
219
- ),
220
- onTouchEnd: this.handleTouchEnd,
221
- onTouchMove: this.handleTouchMove,
222
- onTouchStart: this.handleTouchStart
223
- },
224
- /* @__PURE__ */ React.createElement(AtCalendarDayList, null),
225
- /* @__PURE__ */ React.createElement(
226
- View,
227
- {
228
- className: classnames("main__body body", {
229
- "main__body--slider": isSwiper,
230
- "main__body--animate": isAnimate
231
- }),
232
- style: {
233
- transform: isSwiper ? `translateX(-100%) translate3d(${offsetSize},0,0)` : "",
234
- WebkitTransform: isSwiper ? `translateX(-100%) translate3d(${offsetSize}px,0,0)` : ""
235
- }
236
- },
237
- /* @__PURE__ */ React.createElement(View, { className: "body__slider body__slider--pre" }, /* @__PURE__ */ React.createElement(AtCalendarDateList, { list: listGroup[0].list })),
238
- /* @__PURE__ */ React.createElement(View, { className: "body__slider body__slider--now" }, /* @__PURE__ */ React.createElement(
239
- AtCalendarDateList,
240
- {
241
- list: listGroup[1].list,
242
- onClick: this.props.onDayClick,
243
- onLongClick: this.props.onLongClick
244
- }
245
- )),
246
- /* @__PURE__ */ React.createElement(View, { className: "body__slider body__slider--next" }, /* @__PURE__ */ React.createElement(AtCalendarDateList, { list: listGroup[2].list }))
247
- )
135
+ isTouchingRef.current = false;
136
+ const isRight = offsetSize > 0;
137
+ const breakpoint = maxWidthRef.current / 2;
138
+ const absOffsetSize = Math.abs(offsetSize);
139
+ if (absOffsetSize > breakpoint) {
140
+ const res = isRight ? maxWidthRef.current : -maxWidthRef.current;
141
+ animateMoveSlide(res, () => {
142
+ onSwipeMonth(isRight ? -1 : 1);
143
+ });
144
+ return;
145
+ }
146
+ animateMoveSlide(0);
147
+ };
148
+ const handleChange = (e) => {
149
+ const { current, source } = e.detail;
150
+ if (source === "touch") {
151
+ currentSwiperIndexRef.current = current;
152
+ changeCountRef.current += 1;
153
+ }
154
+ };
155
+ const handleAnimateFinish = () => {
156
+ if (changeCountRef.current > 0) {
157
+ onSwipeMonth(
158
+ isPreMonthRef.current ? -changeCountRef.current : changeCountRef.current
248
159
  );
160
+ changeCountRef.current = 0;
249
161
  }
162
+ };
163
+ const handleSwipeTouchStart = (e) => {
164
+ const { clientY, clientX } = e.changedTouches[0];
165
+ swipeStartPointRef.current = isVertical ? clientY : clientX;
166
+ };
167
+ const handleSwipeTouchEnd = (e) => {
168
+ const { clientY, clientX } = e.changedTouches[0];
169
+ isPreMonthRef.current = isVertical ? clientY - swipeStartPointRef.current > 0 : clientX - swipeStartPointRef.current > 0;
170
+ };
171
+ if (!isSwiper) {
250
172
  return /* @__PURE__ */ React.createElement(
251
173
  View,
252
174
  {
@@ -257,33 +179,91 @@ class AtCalendarBody extends React.Component {
257
179
  )
258
180
  },
259
181
  /* @__PURE__ */ React.createElement(AtCalendarDayList, null),
182
+ /* @__PURE__ */ React.createElement(View, { className: "main__body body" }, /* @__PURE__ */ React.createElement(View, { className: "body__slider body__slider--now" }, /* @__PURE__ */ React.createElement(
183
+ AtCalendarDateList,
184
+ {
185
+ list: listGroup[1].list,
186
+ onClick: onDayClick,
187
+ onLongClick
188
+ }
189
+ )))
190
+ );
191
+ }
192
+ if (process.env.TARO_ENV === "h5") {
193
+ return /* @__PURE__ */ React.createElement(
194
+ View,
195
+ {
196
+ className: classnames(
197
+ "main",
198
+ "at-calendar-slider__main",
199
+ `at-calendar-slider__main--${process.env.TARO_ENV}`
200
+ ),
201
+ onTouchEnd: handleTouchEnd,
202
+ onTouchMove: handleTouchMove,
203
+ onTouchStart: handleTouchStart
204
+ },
205
+ /* @__PURE__ */ React.createElement(AtCalendarDayList, null),
260
206
  /* @__PURE__ */ React.createElement(
261
- Swiper,
207
+ View,
262
208
  {
263
- circular: true,
264
- current: 1,
265
- skipHiddenItemLayout: true,
266
- className: classnames("main__body"),
267
- onChange: this.handleChange,
268
- vertical: this.props.isVertical,
269
- onAnimationFinish: this.handleAnimateFinish,
270
- onTouchEnd: this.handleSwipeTouchEnd,
271
- onTouchStart: this.handleSwipeTouchStart
209
+ className: classnames("main__body body", {
210
+ "main__body--slider": isSwiper,
211
+ "main__body--animate": isAnimate
212
+ }),
213
+ style: {
214
+ transform: isSwiper ? `translateX(-100%) translate3d(${offsetSize},0,0)` : "",
215
+ WebkitTransform: isSwiper ? `translateX(-100%) translate3d(${offsetSize}px,0,0)` : ""
216
+ }
272
217
  },
273
- listGroup.map((item, key) => /* @__PURE__ */ React.createElement(SwiperItem, { key, itemId: key.toString() }, /* @__PURE__ */ React.createElement(
218
+ /* @__PURE__ */ React.createElement(View, { className: "body__slider body__slider--pre" }, /* @__PURE__ */ React.createElement(AtCalendarDateList, { list: listGroup[0].list })),
219
+ /* @__PURE__ */ React.createElement(View, { className: "body__slider body__slider--now" }, /* @__PURE__ */ React.createElement(
274
220
  AtCalendarDateList,
275
221
  {
276
- list: item.list,
277
- onClick: this.props.onDayClick,
278
- onLongClick: this.props.onLongClick
222
+ list: listGroup[1].list,
223
+ onClick: onDayClick,
224
+ onLongClick
279
225
  }
280
- )))
226
+ )),
227
+ /* @__PURE__ */ React.createElement(View, { className: "body__slider body__slider--next" }, /* @__PURE__ */ React.createElement(AtCalendarDateList, { list: listGroup[2].list }))
281
228
  )
282
229
  );
283
230
  }
231
+ return /* @__PURE__ */ React.createElement(
232
+ View,
233
+ {
234
+ className: classnames(
235
+ "main",
236
+ "at-calendar-slider__main",
237
+ `at-calendar-slider__main--${process.env.TARO_ENV}`
238
+ )
239
+ },
240
+ /* @__PURE__ */ React.createElement(AtCalendarDayList, null),
241
+ /* @__PURE__ */ React.createElement(
242
+ Swiper,
243
+ {
244
+ circular: true,
245
+ current: 1,
246
+ skipHiddenItemLayout: true,
247
+ className: classnames("main__body"),
248
+ onChange: handleChange,
249
+ vertical: isVertical,
250
+ onAnimationFinish: handleAnimateFinish,
251
+ onTouchEnd: handleSwipeTouchEnd,
252
+ onTouchStart: handleSwipeTouchStart
253
+ },
254
+ listGroup.map((item, key) => /* @__PURE__ */ React.createElement(SwiperItem, { key, itemId: key.toString() }, /* @__PURE__ */ React.createElement(
255
+ AtCalendarDateList,
256
+ {
257
+ list: item.list,
258
+ onClick: onDayClick,
259
+ onLongClick
260
+ }
261
+ )))
262
+ )
263
+ );
284
264
  }
285
- AtCalendarBody.defaultProps = defaultProps;
265
+ var body_default = AtCalendarBody;
286
266
  export {
287
- AtCalendarBody as default
267
+ body_default as default
288
268
  };
289
269
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/calendar/body/index.tsx"],"sourcesContent":["import classnames from 'classnames'\nimport dayjs from 'dayjs'\nimport React from 'react'\nimport { Swiper, SwiperItem, View } from '@tarojs/components'\nimport {\n BaseEventOrig,\n ITouch,\n ITouchEvent\n} from '@tarojs/components/types/common'\nimport {\n AtCalendarBodyListGroup,\n AtCalendarBodyProps,\n AtCalendarBodyState,\n Calendar\n} from '../../../../types/calendar'\nimport { delayQuerySelector } from '../../../common/utils'\nimport generateCalendarGroup from '../common/helper'\nimport AtCalendarDateList from '../ui/date-list/index'\nimport AtCalendarDayList from '../ui/day-list/index'\n\nconst ANIMTE_DURATION = 300\n\nconst defaultProps: Partial<AtCalendarBodyProps> = {\n marks: [],\n selectedDate: {\n end: Date.now(),\n start: Date.now()\n },\n format: 'YYYY-MM-DD',\n generateDate: Date.now()\n}\n\nexport default class AtCalendarBody extends React.Component<\n AtCalendarBodyProps,\n Readonly<AtCalendarBodyState>\n> {\n static defaultProps: Partial<AtCalendarBodyProps> = defaultProps\n\n public constructor(props: AtCalendarBodyProps) {\n super(props)\n const {\n validDates,\n marks,\n format,\n minDate,\n maxDate,\n generateDate,\n selectedDate,\n selectedDates\n } = props\n\n this.generateFunc = generateCalendarGroup({\n validDates,\n format,\n minDate,\n maxDate,\n marks,\n selectedDates\n })\n const listGroup = this.getGroups(generateDate, selectedDate)\n\n this.state = {\n listGroup,\n offsetSize: 0,\n isAnimate: false\n }\n }\n\n public componentDidMount(): void {\n delayQuerySelector('.at-calendar-slider__main').then(res => {\n this.maxWidth = res[0].width\n })\n }\n\n public UNSAFE_componentWillReceiveProps(\n nextProps: AtCalendarBodyProps\n ): void {\n const {\n validDates,\n marks,\n format,\n minDate,\n maxDate,\n generateDate,\n selectedDate,\n selectedDates\n } = nextProps\n\n this.generateFunc = generateCalendarGroup({\n validDates,\n format,\n minDate,\n maxDate,\n marks,\n selectedDates\n })\n const listGroup = this.getGroups(generateDate, selectedDate)\n\n this.setState({\n offsetSize: 0,\n listGroup\n })\n }\n\n private changeCount = 0\n private currentSwiperIndex = 1\n private startX = 0\n private swipeStartPoint = 0\n private isPreMonth = false\n private maxWidth = 0\n private isTouching = false\n\n private generateFunc: (\n generateDate: number,\n selectedDate: Calendar.SelectedDate,\n isShowStatus?: boolean\n ) => Calendar.ListInfo<Calendar.Item>\n\n private getGroups = (\n generateDate: number,\n selectedDate: Calendar.SelectedDate\n ): AtCalendarBodyListGroup => {\n const dayjsDate = dayjs(generateDate)\n const arr: AtCalendarBodyListGroup = []\n const preList: Calendar.ListInfo<Calendar.Item> = this.generateFunc(\n dayjsDate.subtract(1, 'month').valueOf(),\n selectedDate\n )\n\n const nowList: Calendar.ListInfo<Calendar.Item> = this.generateFunc(\n generateDate,\n selectedDate,\n true\n )\n\n const nextList: Calendar.ListInfo<Calendar.Item> = this.generateFunc(\n dayjsDate.add(1, 'month').valueOf(),\n selectedDate\n )\n\n const preListIndex =\n this.currentSwiperIndex === 0 ? 2 : this.currentSwiperIndex - 1\n const nextListIndex =\n this.currentSwiperIndex === 2 ? 0 : this.currentSwiperIndex + 1\n\n arr[preListIndex] = preList\n arr[nextListIndex] = nextList\n arr[this.currentSwiperIndex] = nowList\n\n return arr\n }\n\n private handleTouchStart = (e: ITouchEvent): void => {\n if (!this.props.isSwiper) {\n return\n }\n this.isTouching = true\n this.startX = e.touches[0].clientX\n }\n\n private handleTouchMove = (e: ITouchEvent): void => {\n if (!this.props.isSwiper) {\n return\n }\n if (!this.isTouching) return\n\n const { clientX } = e.touches[0]\n const offsetSize = clientX - this.startX\n\n this.setState({\n offsetSize\n })\n }\n\n private animateMoveSlide = (offset: number, callback?: () => void): void => {\n this.setState(\n {\n isAnimate: true\n },\n () => {\n this.setState({\n offsetSize: offset\n })\n setTimeout(() => {\n this.setState(\n {\n isAnimate: false\n },\n () => {\n callback?.()\n }\n )\n }, ANIMTE_DURATION)\n }\n )\n }\n\n private handleTouchEnd = (): void => {\n if (!this.props.isSwiper) {\n return\n }\n\n const { offsetSize } = this.state\n\n this.isTouching = false\n const isRight = offsetSize > 0\n\n const breakpoint = this.maxWidth / 2\n const absOffsetSize = Math.abs(offsetSize)\n\n if (absOffsetSize > breakpoint) {\n const res = isRight ? this.maxWidth : -this.maxWidth\n return this.animateMoveSlide(res, () => {\n this.props.onSwipeMonth(isRight ? -1 : 1)\n })\n }\n this.animateMoveSlide(0)\n }\n\n private handleChange = (\n e: BaseEventOrig<{\n current: number\n source: string\n }>\n ): void => {\n const { current, source } = e.detail\n\n if (source === 'touch') {\n this.currentSwiperIndex = current\n this.changeCount += 1\n }\n }\n\n private handleAnimateFinish = (): void => {\n if (this.changeCount > 0) {\n this.props.onSwipeMonth(\n this.isPreMonth ? -this.changeCount : this.changeCount\n )\n this.changeCount = 0\n }\n }\n\n private handleSwipeTouchStart = (\n e: ITouchEvent & { changedTouches: Array<ITouch> }\n ): void => {\n const { clientY, clientX } = e.changedTouches[0]\n this.swipeStartPoint = this.props.isVertical ? clientY : clientX\n }\n\n private handleSwipeTouchEnd = (\n e: ITouchEvent & { changedTouches: Array<ITouch> }\n ): void => {\n const { clientY, clientX } = e.changedTouches[0]\n this.isPreMonth = this.props.isVertical\n ? clientY - this.swipeStartPoint > 0\n : clientX - this.swipeStartPoint > 0\n }\n\n public render(): JSX.Element {\n const { isSwiper } = this.props\n const { isAnimate, offsetSize, listGroup } = this.state\n\n if (!isSwiper) {\n return (\n <View\n className={classnames(\n 'main',\n 'at-calendar-slider__main',\n `at-calendar-slider__main--${process.env.TARO_ENV}`\n )}\n >\n <AtCalendarDayList />\n <View className='main__body body'>\n <View className='body__slider body__slider--now'>\n <AtCalendarDateList\n list={listGroup[1].list}\n onClick={this.props.onDayClick}\n onLongClick={this.props.onLongClick}\n />\n </View>\n </View>\n </View>\n )\n }\n\n /* 需要 Taro 组件库维护 Swiper 使 小程序 和 H5 的表现保持一致 */\n if (process.env.TARO_ENV === 'h5') {\n return (\n <View\n className={classnames(\n 'main',\n 'at-calendar-slider__main',\n `at-calendar-slider__main--${process.env.TARO_ENV}`\n )}\n onTouchEnd={this.handleTouchEnd}\n onTouchMove={this.handleTouchMove}\n onTouchStart={this.handleTouchStart}\n >\n <AtCalendarDayList />\n <View\n className={classnames('main__body body', {\n 'main__body--slider': isSwiper,\n 'main__body--animate': isAnimate\n })}\n style={{\n transform: isSwiper\n ? `translateX(-100%) translate3d(${offsetSize},0,0)`\n : '',\n WebkitTransform: isSwiper\n ? `translateX(-100%) translate3d(${offsetSize}px,0,0)`\n : ''\n }}\n >\n <View className='body__slider body__slider--pre'>\n <AtCalendarDateList list={listGroup[0].list} />\n </View>\n <View className='body__slider body__slider--now'>\n <AtCalendarDateList\n list={listGroup[1].list}\n onClick={this.props.onDayClick}\n onLongClick={this.props.onLongClick}\n />\n </View>\n <View className='body__slider body__slider--next'>\n <AtCalendarDateList list={listGroup[2].list} />\n </View>\n </View>\n </View>\n )\n }\n\n return (\n <View\n className={classnames(\n 'main',\n 'at-calendar-slider__main',\n `at-calendar-slider__main--${process.env.TARO_ENV}`\n )}\n >\n <AtCalendarDayList />\n <Swiper\n circular\n current={1}\n skipHiddenItemLayout\n className={classnames('main__body')}\n onChange={this.handleChange}\n vertical={this.props.isVertical}\n onAnimationFinish={this.handleAnimateFinish}\n onTouchEnd={this.handleSwipeTouchEnd}\n onTouchStart={this.handleSwipeTouchStart}\n >\n {listGroup.map((item, key) => (\n <SwiperItem key={key} itemId={key.toString()}>\n <AtCalendarDateList\n list={item.list}\n onClick={this.props.onDayClick}\n onLongClick={this.props.onLongClick}\n />\n </SwiperItem>\n ))}\n </Swiper>\n </View>\n )\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/calendar/body/index.tsx"],"sourcesContent":["import classnames from 'classnames'\nimport dayjs from 'dayjs'\nimport React, { useEffect, useRef, useState } from 'react'\nimport { Swiper, SwiperItem, View } from '@tarojs/components'\nimport {\n BaseEventOrig,\n ITouch,\n ITouchEvent\n} from '@tarojs/components/types/common'\nimport {\n AtCalendarBodyListGroup,\n AtCalendarBodyProps,\n Calendar\n} from '../../../../types/calendar'\nimport { delayQuerySelector } from '../../../common/utils'\nimport generateCalendarGroup from '../common/helper'\nimport AtCalendarDateList from '../ui/date-list/index'\nimport AtCalendarDayList from '../ui/day-list/index'\n\nconst ANIMTE_DURATION = 300\n\nfunction AtCalendarBody({\n marks = [],\n selectedDate = {\n end: Date.now(),\n start: Date.now()\n },\n format = 'YYYY-MM-DD',\n generateDate = Date.now(),\n validDates,\n minDate,\n maxDate,\n selectedDates,\n isSwiper,\n isVertical,\n onDayClick,\n onLongClick,\n onSwipeMonth\n}: AtCalendarBodyProps): JSX.Element {\n const changeCountRef = useRef(0)\n const currentSwiperIndexRef = useRef(1)\n const startXRef = useRef(0)\n const swipeStartPointRef = useRef(0)\n const isPreMonthRef = useRef(false)\n const maxWidthRef = useRef(0)\n const isTouchingRef = useRef(false)\n\n const generateFuncRef = useRef(\n generateCalendarGroup({\n validDates,\n format,\n minDate,\n maxDate,\n marks,\n selectedDates\n })\n )\n\n const getGroups = (\n genDate: number,\n selDate: Calendar.SelectedDate\n ): AtCalendarBodyListGroup => {\n const dayjsDate = dayjs(genDate)\n const arr: AtCalendarBodyListGroup = []\n const preList: Calendar.ListInfo<Calendar.Item> = generateFuncRef.current(\n dayjsDate.subtract(1, 'month').valueOf(),\n selDate\n )\n\n const nowList: Calendar.ListInfo<Calendar.Item> = generateFuncRef.current(\n genDate,\n selDate,\n true\n )\n\n const nextList: Calendar.ListInfo<Calendar.Item> = generateFuncRef.current(\n dayjsDate.add(1, 'month').valueOf(),\n selDate\n )\n\n const preListIndex =\n currentSwiperIndexRef.current === 0\n ? 2\n : currentSwiperIndexRef.current - 1\n const nextListIndex =\n currentSwiperIndexRef.current === 2\n ? 0\n : currentSwiperIndexRef.current + 1\n\n arr[preListIndex] = preList\n arr[nextListIndex] = nextList\n arr[currentSwiperIndexRef.current] = nowList\n\n return arr\n }\n\n const [listGroup, setListGroup] = useState<AtCalendarBodyListGroup>(() =>\n getGroups(generateDate, selectedDate)\n )\n const [offsetSize, setOffsetSize] = useState(0)\n const [isAnimate, setIsAnimate] = useState(false)\n\n useEffect(() => {\n delayQuerySelector('.at-calendar-slider__main').then(res => {\n maxWidthRef.current = res[0].width\n })\n }, [])\n\n const isMountedRef = useRef(false)\n\n useEffect(() => {\n if (!isMountedRef.current) {\n isMountedRef.current = true\n return\n }\n\n generateFuncRef.current = generateCalendarGroup({\n validDates,\n format,\n minDate,\n maxDate,\n marks,\n selectedDates\n })\n const nextListGroup = getGroups(generateDate, selectedDate)\n\n setOffsetSize(0)\n setListGroup(nextListGroup)\n }, [\n validDates,\n marks,\n format,\n minDate,\n maxDate,\n generateDate,\n selectedDate,\n selectedDates\n ])\n\n const handleTouchStart = (e: ITouchEvent): void => {\n if (!isSwiper) {\n return\n }\n isTouchingRef.current = true\n startXRef.current = e.touches[0].clientX\n }\n\n const handleTouchMove = (e: ITouchEvent): void => {\n if (!isSwiper) {\n return\n }\n if (!isTouchingRef.current) return\n\n const { clientX } = e.touches[0]\n const nextOffsetSize = clientX - startXRef.current\n\n setOffsetSize(nextOffsetSize)\n }\n\n const animateMoveSlide = (offset: number, callback?: () => void): void => {\n setIsAnimate(true)\n Promise.resolve().then(() => {\n setOffsetSize(offset)\n setTimeout(() => {\n setIsAnimate(false)\n callback?.()\n }, ANIMTE_DURATION)\n })\n }\n\n const handleTouchEnd = (): void => {\n if (!isSwiper) {\n return\n }\n\n isTouchingRef.current = false\n const isRight = offsetSize > 0\n\n const breakpoint = maxWidthRef.current / 2\n const absOffsetSize = Math.abs(offsetSize)\n\n if (absOffsetSize > breakpoint) {\n const res = isRight ? maxWidthRef.current : -maxWidthRef.current\n animateMoveSlide(res, () => {\n onSwipeMonth(isRight ? -1 : 1)\n })\n return\n }\n animateMoveSlide(0)\n }\n\n const handleChange = (\n e: BaseEventOrig<{\n current: number\n source: string\n }>\n ): void => {\n const { current, source } = e.detail\n\n if (source === 'touch') {\n currentSwiperIndexRef.current = current\n changeCountRef.current += 1\n }\n }\n\n const handleAnimateFinish = (): void => {\n if (changeCountRef.current > 0) {\n onSwipeMonth(\n isPreMonthRef.current ? -changeCountRef.current : changeCountRef.current\n )\n changeCountRef.current = 0\n }\n }\n\n const handleSwipeTouchStart = (\n e: ITouchEvent & { changedTouches: Array<ITouch> }\n ): void => {\n const { clientY, clientX } = e.changedTouches[0]\n swipeStartPointRef.current = isVertical ? clientY : clientX\n }\n\n const handleSwipeTouchEnd = (\n e: ITouchEvent & { changedTouches: Array<ITouch> }\n ): void => {\n const { clientY, clientX } = e.changedTouches[0]\n isPreMonthRef.current = isVertical\n ? clientY - swipeStartPointRef.current > 0\n : clientX - swipeStartPointRef.current > 0\n }\n\n if (!isSwiper) {\n return (\n <View\n className={classnames(\n 'main',\n 'at-calendar-slider__main',\n `at-calendar-slider__main--${process.env.TARO_ENV}`\n )}\n >\n <AtCalendarDayList />\n <View className='main__body body'>\n <View className='body__slider body__slider--now'>\n <AtCalendarDateList\n list={listGroup[1].list}\n onClick={onDayClick}\n onLongClick={onLongClick}\n />\n </View>\n </View>\n </View>\n )\n }\n\n /* 需要 Taro 组件库维护 Swiper 使 小程序 和 H5 的表现保持一致 */\n if (process.env.TARO_ENV === 'h5') {\n return (\n <View\n className={classnames(\n 'main',\n 'at-calendar-slider__main',\n `at-calendar-slider__main--${process.env.TARO_ENV}`\n )}\n onTouchEnd={handleTouchEnd}\n onTouchMove={handleTouchMove}\n onTouchStart={handleTouchStart}\n >\n <AtCalendarDayList />\n <View\n className={classnames('main__body body', {\n 'main__body--slider': isSwiper,\n 'main__body--animate': isAnimate\n })}\n style={{\n transform: isSwiper\n ? `translateX(-100%) translate3d(${offsetSize},0,0)`\n : '',\n WebkitTransform: isSwiper\n ? `translateX(-100%) translate3d(${offsetSize}px,0,0)`\n : ''\n }}\n >\n <View className='body__slider body__slider--pre'>\n <AtCalendarDateList list={listGroup[0].list} />\n </View>\n <View className='body__slider body__slider--now'>\n <AtCalendarDateList\n list={listGroup[1].list}\n onClick={onDayClick}\n onLongClick={onLongClick}\n />\n </View>\n <View className='body__slider body__slider--next'>\n <AtCalendarDateList list={listGroup[2].list} />\n </View>\n </View>\n </View>\n )\n }\n\n return (\n <View\n className={classnames(\n 'main',\n 'at-calendar-slider__main',\n `at-calendar-slider__main--${process.env.TARO_ENV}`\n )}\n >\n <AtCalendarDayList />\n <Swiper\n circular\n current={1}\n skipHiddenItemLayout\n className={classnames('main__body')}\n onChange={handleChange}\n vertical={isVertical}\n onAnimationFinish={handleAnimateFinish}\n onTouchEnd={handleSwipeTouchEnd}\n onTouchStart={handleSwipeTouchStart}\n >\n {listGroup.map((item, key) => (\n <SwiperItem key={key} itemId={key.toString()}>\n <AtCalendarDateList\n list={item.list}\n onClick={onDayClick}\n onLongClick={onLongClick}\n />\n </SwiperItem>\n ))}\n </Swiper>\n </View>\n )\n}\n\nexport default AtCalendarBody\n"],"mappings":"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","names":[]}
@@ -1,5 +1,3 @@
1
- import React from 'react';
2
- import { AtCalendarControllerProps, AtCalendarControllerState } from '../../../../types/calendar';
3
- export default class AtCalendarController extends React.Component<AtCalendarControllerProps, AtCalendarControllerState> {
4
- render(): JSX.Element;
5
- }
1
+ import { AtCalendarControllerProps } from '../../../../types/calendar';
2
+ declare function AtCalendarController({ generateDate, minDate, maxDate, monthFormat, hideArrow, onPreMonth, onNextMonth, onSelectDate }: AtCalendarControllerProps): JSX.Element;
3
+ export default AtCalendarController;