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.
- package/LICENSE +1 -1
- package/README.md +85 -0
- package/dist/common/utils.d.ts +2 -1
- package/dist/common/utils.js +3 -0
- package/dist/common/utils.js.map +1 -1
- package/dist/components/accordion/index.d.ts +16 -13
- package/dist/components/accordion/index.js +77 -97
- package/dist/components/accordion/index.js.map +1 -1
- package/dist/components/action-sheet/body/index.d.ts +2 -4
- package/dist/components/action-sheet/body/index.js +8 -6
- package/dist/components/action-sheet/body/index.js.map +1 -1
- package/dist/components/action-sheet/body/item/index.d.ts +7 -7
- package/dist/components/action-sheet/body/item/index.js +14 -14
- package/dist/components/action-sheet/body/item/index.js.map +1 -1
- package/dist/components/action-sheet/footer/index.d.ts +7 -7
- package/dist/components/action-sheet/footer/index.js +14 -17
- package/dist/components/action-sheet/footer/index.js.map +1 -1
- package/dist/components/action-sheet/header/index.d.ts +2 -4
- package/dist/components/action-sheet/header/index.js +8 -9
- package/dist/components/action-sheet/header/index.js.map +1 -1
- package/dist/components/action-sheet/index.d.ts +12 -13
- package/dist/components/action-sheet/index.js +53 -57
- package/dist/components/action-sheet/index.js.map +1 -1
- package/dist/components/activity-indicator/index.d.ts +12 -6
- package/dist/components/activity-indicator/index.js +19 -22
- package/dist/components/activity-indicator/index.js.map +1 -1
- package/dist/components/avatar/index.d.ts +14 -8
- package/dist/components/avatar/index.js +36 -43
- package/dist/components/avatar/index.js.map +1 -1
- package/dist/components/badge/index.d.ts +11 -8
- package/dist/components/badge/index.js +18 -34
- package/dist/components/badge/index.js.map +1 -1
- package/dist/components/button/index.d.ts +29 -14
- package/dist/components/button/index.js +97 -112
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/calendar/body/index.d.ts +3 -26
- package/dist/components/calendar/body/index.js +215 -235
- package/dist/components/calendar/body/index.js.map +1 -1
- package/dist/components/calendar/controller/index.d.ts +3 -5
- package/dist/components/calendar/controller/index.js +47 -43
- package/dist/components/calendar/controller/index.js.map +1 -1
- package/dist/components/calendar/index.d.ts +3 -20
- package/dist/components/calendar/index.js +219 -201
- package/dist/components/calendar/index.js.map +1 -1
- package/dist/components/calendar/ui/date-list/index.d.ts +2 -6
- package/dist/components/calendar/ui/date-list/index.js +36 -41
- package/dist/components/calendar/ui/date-list/index.js.map +1 -1
- package/dist/components/calendar/ui/day-list/index.d.ts +2 -4
- package/dist/components/calendar/ui/day-list/index.js +6 -5
- package/dist/components/calendar/ui/day-list/index.js.map +1 -1
- package/dist/components/card/index.d.ts +15 -7
- package/dist/components/card/index.js +42 -43
- package/dist/components/card/index.js.map +1 -1
- package/dist/components/checkbox/index.d.ts +11 -7
- package/dist/components/checkbox/index.js +30 -35
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/config-provider/context.d.ts +6 -0
- package/dist/components/config-provider/context.js +13 -0
- package/dist/components/config-provider/context.js.map +1 -0
- package/dist/components/config-provider/index.d.ts +7 -0
- package/dist/components/config-provider/index.js +15 -0
- package/dist/components/config-provider/index.js.map +1 -0
- package/dist/components/countdown/index.d.ts +19 -19
- package/dist/components/countdown/index.js +183 -118
- package/dist/components/countdown/index.js.map +1 -1
- package/dist/components/countdown/item/index.d.ts +8 -7
- package/dist/components/countdown/item/index.js +10 -13
- package/dist/components/countdown/item/index.js.map +1 -1
- package/dist/components/curtain/index.d.ts +11 -8
- package/dist/components/curtain/index.js +36 -45
- package/dist/components/curtain/index.js.map +1 -1
- package/dist/components/divider/index.d.ts +13 -6
- package/dist/components/divider/index.js +29 -38
- package/dist/components/divider/index.js.map +1 -1
- package/dist/components/drawer/index.d.ts +13 -15
- package/dist/components/drawer/index.js +100 -93
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/fab/index.d.ts +8 -7
- package/dist/components/fab/index.js +16 -16
- package/dist/components/fab/index.js.map +1 -1
- package/dist/components/flex/index.d.ts +11 -5
- package/dist/components/flex/index.js +17 -18
- package/dist/components/flex/index.js.map +1 -1
- package/dist/components/flex/item/index.d.ts +11 -5
- package/dist/components/flex/item/index.js +17 -18
- package/dist/components/flex/item/index.js.map +1 -1
- package/dist/components/float-layout/index.d.ts +20 -12
- package/dist/components/float-layout/index.js +56 -72
- package/dist/components/float-layout/index.js.map +1 -1
- package/dist/components/form/index.d.ts +11 -8
- package/dist/components/form/index.js +28 -28
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/grid/index.d.ts +22 -7
- package/dist/components/grid/index.js +61 -66
- package/dist/components/grid/index.js.map +1 -1
- package/dist/components/icon/index.d.ts +13 -7
- package/dist/components/icon/index.js +24 -34
- package/dist/components/icon/index.js.map +1 -1
- package/dist/components/image-picker/index.d.ts +19 -9
- package/dist/components/image-picker/index.js +83 -102
- package/dist/components/image-picker/index.js.map +1 -1
- package/dist/components/indexes/index.d.ts +16 -28
- package/dist/components/indexes/index.js +198 -209
- package/dist/components/indexes/index.js.map +1 -1
- package/dist/components/input/index.d.ts +37 -15
- package/dist/components/input/index.js +152 -161
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/input-number/index.d.ts +20 -11
- package/dist/components/input-number/index.js +107 -126
- package/dist/components/input-number/index.js.map +1 -1
- package/dist/components/list/index.d.ts +7 -6
- package/dist/components/list/index.js +15 -15
- package/dist/components/list/index.js.map +1 -1
- package/dist/components/list/item/index.d.ts +27 -9
- package/dist/components/list/item/index.js +89 -117
- package/dist/components/list/item/index.js.map +1 -1
- package/dist/components/load-more/index.d.ts +15 -7
- package/dist/components/load-more/index.js +29 -50
- package/dist/components/load-more/index.js.map +1 -1
- package/dist/components/loading/index.d.ts +8 -7
- package/dist/components/loading/index.js +14 -20
- package/dist/components/loading/index.js.map +1 -1
- package/dist/components/message/index.d.ts +9 -14
- package/dist/components/message/index.js +45 -59
- package/dist/components/message/index.js.map +1 -1
- package/dist/components/modal/action/index.d.ts +7 -6
- package/dist/components/modal/action/index.js +15 -15
- package/dist/components/modal/action/index.js.map +1 -1
- package/dist/components/modal/content/index.d.ts +2 -4
- package/dist/components/modal/content/index.js +8 -6
- package/dist/components/modal/content/index.js.map +1 -1
- package/dist/components/modal/header/index.d.ts +2 -4
- package/dist/components/modal/header/index.js +8 -6
- package/dist/components/modal/header/index.js.map +1 -1
- package/dist/components/modal/index.d.ts +16 -14
- package/dist/components/modal/index.js +63 -77
- package/dist/components/modal/index.js.map +1 -1
- package/dist/components/nav-bar/index.d.ts +20 -10
- package/dist/components/nav-bar/index.js +146 -162
- package/dist/components/nav-bar/index.js.map +1 -1
- package/dist/components/noticebar/index.d.ts +17 -15
- package/dist/components/noticebar/index.js +115 -128
- package/dist/components/noticebar/index.js.map +1 -1
- package/dist/components/pagination/index.d.ts +13 -11
- package/dist/components/pagination/index.js +64 -120
- package/dist/components/pagination/index.js.map +1 -1
- package/dist/components/progress/index.d.ts +11 -5
- package/dist/components/progress/index.js +39 -36
- package/dist/components/progress/index.js.map +1 -1
- package/dist/components/radio/index.d.ts +11 -7
- package/dist/components/radio/index.js +29 -33
- package/dist/components/radio/index.js.map +1 -1
- package/dist/components/range/index.d.ts +19 -21
- package/dist/components/range/index.js +146 -153
- package/dist/components/range/index.js.map +1 -1
- package/dist/components/rate/index.d.ts +13 -7
- package/dist/components/rate/index.js +47 -62
- package/dist/components/rate/index.js.map +1 -1
- package/dist/components/search-bar/index.d.ts +23 -15
- package/dist/components/search-bar/index.js +120 -146
- package/dist/components/search-bar/index.js.map +1 -1
- package/dist/components/segmented-control/index.d.ts +14 -7
- package/dist/components/segmented-control/index.js +52 -66
- package/dist/components/segmented-control/index.js.map +1 -1
- package/dist/components/slider/index.d.ts +21 -12
- package/dist/components/slider/index.js +66 -90
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/steps/index.d.ts +11 -7
- package/dist/components/steps/index.js +43 -48
- package/dist/components/steps/index.js.map +1 -1
- package/dist/components/swipe-action/index.d.ts +12 -25
- package/dist/components/swipe-action/index.js +118 -115
- package/dist/components/swipe-action/index.js.map +1 -1
- package/dist/components/swipe-action/options/index.d.ts +2 -4
- package/dist/components/swipe-action/options/index.js +18 -17
- package/dist/components/swipe-action/options/index.js.map +1 -1
- package/dist/components/switch/index.d.ts +14 -7
- package/dist/components/switch/index.js +36 -41
- package/dist/components/switch/index.js.map +1 -1
- package/dist/components/tab-bar/index.d.ts +17 -7
- package/dist/components/tab-bar/index.js +108 -135
- package/dist/components/tab-bar/index.js.map +1 -1
- package/dist/components/tabs/index.d.ts +17 -23
- package/dist/components/tabs/index.js +185 -174
- package/dist/components/tabs/index.js.map +1 -1
- package/dist/components/tabs-pane/index.d.ts +11 -6
- package/dist/components/tabs-pane/index.js +26 -28
- package/dist/components/tabs-pane/index.js.map +1 -1
- package/dist/components/tag/index.d.ts +14 -7
- package/dist/components/tag/index.js +31 -40
- package/dist/components/tag/index.js.map +1 -1
- package/dist/components/textarea/index.d.ts +29 -11
- package/dist/components/textarea/index.js +72 -92
- package/dist/components/textarea/index.js.map +1 -1
- package/dist/components/timeline/index.d.ts +9 -6
- package/dist/components/timeline/index.js +50 -56
- package/dist/components/timeline/index.js.map +1 -1
- package/dist/components/toast/img.json +3 -6
- package/dist/components/toast/index.d.ts +16 -15
- package/dist/components/toast/index.js +85 -94
- package/dist/components/toast/index.js.map +1 -1
- package/dist/hooks/useComponentLocale.d.ts +2 -0
- package/dist/hooks/useComponentLocale.js +12 -0
- package/dist/hooks/useComponentLocale.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.esm.js +4006 -4404
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +4032 -4434
- package/dist/index.js.map +1 -1
- package/dist/locale/en_US.d.ts +3 -0
- package/dist/locale/en_US.js +34 -0
- package/dist/locale/en_US.js.map +1 -0
- package/dist/locale/index.d.ts +4 -0
- package/dist/locale/index.js +10 -0
- package/dist/locale/index.js.map +1 -0
- package/dist/locale/types.d.ts +34 -0
- package/dist/locale/types.js +1 -0
- package/dist/locale/types.js.map +1 -0
- package/dist/locale/zh_CN.d.ts +3 -0
- package/dist/locale/zh_CN.js +34 -0
- package/dist/locale/zh_CN.js.map +1 -0
- package/dist/style/components/avatar.scss +1 -1
- package/dist/style/components/badge.scss +7 -2
- package/dist/style/components/calendar.scss +1 -1
- package/dist/style/components/countdown.scss +2 -1
- package/dist/style/components/flex.scss +1 -1
- package/dist/style/components/grid.scss +2 -2
- package/dist/style/components/icon.scss +302 -101
- package/dist/style/components/input.scss +2 -2
- package/dist/style/components/progress.scss +1 -1
- package/dist/style/components/search-bar.scss +1 -1
- package/dist/style/components/steps.scss +2 -2
- package/dist/style/components/tabs.scss +1 -1
- package/dist/style/components/tag.scss +1 -1
- package/dist/style/components/timeline.scss +1 -1
- package/dist/style/components/toast.scss +7 -3
- package/dist/style/index.css +176 -176
- package/dist/style/index.css.map +1 -1
- package/dist/style/mixins/libs/hairline.scss +4 -19
- package/dist/style/mixins/libs/shade.scss +3 -6
- package/dist/style/mixins/libs/tint.scss +4 -7
- package/dist/style/themes/purple.scss +15 -15
- package/dist/style/themes/red.scss +16 -13
- package/dist/style/variables/default.scss +69 -73
- package/package.json +5 -3
- package/rn/components/accordion/index.tsx +2 -9
- package/rn/components/action-sheet/body/index.tsx +1 -3
- package/rn/components/action-sheet/body/item/index.tsx +1 -3
- package/rn/components/action-sheet/footer/index.tsx +1 -3
- package/rn/components/action-sheet/header/index.tsx +1 -3
- package/rn/components/activity-indicator/index.tsx +1 -3
- package/rn/components/avatar/index.tsx +5 -5
- package/rn/components/calendar/controller/index.tsx +2 -7
- package/rn/components/card/index.tsx +4 -4
- package/rn/components/countdown/index.scss +5 -4
- package/rn/components/countdown/item/index.tsx +1 -3
- package/rn/components/curtain/index.tsx +5 -5
- package/rn/components/flex/index.scss +2 -2
- package/rn/components/flex/item/index.scss +2 -2
- package/rn/components/grid/index.tsx +15 -15
- package/rn/components/icon/index.tsx +4 -4
- package/rn/components/image-picker/index.tsx +7 -7
- package/rn/components/pagination/index.tsx +7 -7
- package/rn/components/progress/index.tsx +5 -5
- package/rn/components/radio/index.tsx +7 -7
- package/rn/components/rate/index.tsx +4 -4
- package/rn/components/segmented-control/index.tsx +8 -8
- package/rn/components/slider/index.tsx +9 -9
- package/rn/components/steps/index.tsx +8 -8
- package/rn/components/swipe-action/options/index.tsx +1 -3
- package/rn/components/switch/index.tsx +2 -9
- package/rn/components/toast/img.json +3 -6
- package/rn/components/toast/index.tsx +8 -8
- package/rn/style/components/accordion.scss +1 -1
- package/rn/style/components/action-sheet.scss +1 -1
- package/rn/style/components/avatar.scss +1 -1
- package/rn/style/components/badge.scss +8 -3
- package/rn/style/components/button.scss +1 -1
- package/rn/style/components/calendar.scss +1 -1
- package/rn/style/components/checkbox.scss +1 -1
- package/rn/style/components/curtain.scss +1 -1
- package/rn/style/components/fab.scss +1 -4
- package/rn/style/components/flex.scss +1 -1
- package/rn/style/components/grid.scss +2 -6
- package/rn/style/components/icon.scss +302 -101
- package/rn/style/components/index.scss +41 -41
- package/rn/style/components/input.scss +1 -1
- package/rn/style/components/list.scss +2 -4
- package/rn/style/components/loading.scss +4 -4
- package/rn/style/components/message.scss +1 -1
- package/rn/style/components/modal.scss +0 -2
- package/rn/style/components/nav-bar.scss +3 -3
- package/rn/style/components/noticebar.scss +0 -4
- package/rn/style/components/progress.scss +1 -1
- package/rn/style/components/radio.scss +2 -2
- package/rn/style/components/range.scss +1 -1
- package/rn/style/components/search-bar.scss +1 -1
- package/rn/style/components/segmented-control.scss +4 -1
- package/rn/style/components/slider.scss +0 -1
- package/rn/style/components/steps.scss +3 -3
- package/rn/style/components/switch.scss +0 -1
- package/rn/style/components/tabs.scss +2 -2
- package/rn/style/components/tag.scss +1 -1
- package/rn/style/components/timeline.scss +0 -2
- package/rn/style/components/toast.scss +5 -2
- package/rn/style/index.scss +1 -1
- package/rn/style/mixins/libs/hairline.scss +4 -22
- package/rn/style/mixins/libs/shade.scss +1 -4
- package/rn/style/mixins/libs/tint.scss +2 -5
- package/rn/style/themes/purple.scss +15 -15
- package/rn/style/themes/red.scss +16 -13
- package/rn/style/variables/default.scss +69 -73
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
render(): JSX.Element;
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import { AtCountDownProps } from '../../../types/countdown';
|
|
3
|
+
declare function AtCountdown({ customStyle, className, format, isCard, isShowDay, isShowHour, isShowMinute, day, hours, minutes, seconds, onTimeUp }: AtCountDownProps): JSX.Element;
|
|
4
|
+
declare namespace AtCountdown {
|
|
5
|
+
var propTypes: {
|
|
6
|
+
customStyle: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
|
|
7
|
+
className: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>;
|
|
8
|
+
isCard: PropTypes.Requireable<boolean>;
|
|
9
|
+
isShowDay: PropTypes.Requireable<boolean>;
|
|
10
|
+
isShowHour: PropTypes.Requireable<boolean>;
|
|
11
|
+
isShowMinute: PropTypes.Requireable<boolean>;
|
|
12
|
+
format: PropTypes.Requireable<object>;
|
|
13
|
+
day: PropTypes.Requireable<number>;
|
|
14
|
+
hours: PropTypes.Requireable<number>;
|
|
15
|
+
minutes: PropTypes.Requireable<number>;
|
|
16
|
+
seconds: PropTypes.Requireable<number>;
|
|
17
|
+
onTimeUp: PropTypes.Requireable<(...args: any[]) => any>;
|
|
18
|
+
};
|
|
20
19
|
}
|
|
20
|
+
export default AtCountdown;
|
|
@@ -1,137 +1,201 @@
|
|
|
1
1
|
import classNames from "classnames";
|
|
2
2
|
import PropTypes from "prop-types";
|
|
3
|
-
import React from "react";
|
|
3
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { View } from "@tarojs/components";
|
|
5
|
+
import { useDidHide, useDidShow } from "@tarojs/taro";
|
|
6
|
+
import { useComponentLocale } from "../../hooks/useComponentLocale";
|
|
5
7
|
import AtCountdownItem from "./item";
|
|
6
8
|
const toSeconds = (day, hours, minutes, seconds) => day * 60 * 60 * 24 + hours * 60 * 60 + minutes * 60 + seconds;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
9
|
+
function AtCountdown({
|
|
10
|
+
customStyle = "",
|
|
11
|
+
className = "",
|
|
12
|
+
format,
|
|
13
|
+
isCard = false,
|
|
14
|
+
isShowDay = false,
|
|
15
|
+
isShowHour = true,
|
|
16
|
+
isShowMinute = true,
|
|
17
|
+
day = 0,
|
|
18
|
+
hours = 0,
|
|
19
|
+
minutes = 0,
|
|
20
|
+
seconds = 0,
|
|
21
|
+
onTimeUp
|
|
22
|
+
}) {
|
|
23
|
+
const locale = useComponentLocale("Countdown");
|
|
24
|
+
const mergedFormat = useMemo(
|
|
25
|
+
() => {
|
|
26
|
+
var _a, _b, _c, _d;
|
|
27
|
+
return {
|
|
28
|
+
day: (_a = format == null ? void 0 : format.day) != null ? _a : locale.day,
|
|
29
|
+
hours: (_b = format == null ? void 0 : format.hours) != null ? _b : locale.hours,
|
|
30
|
+
minutes: (_c = format == null ? void 0 : format.minutes) != null ? _c : locale.minutes,
|
|
31
|
+
seconds: (_d = format == null ? void 0 : format.seconds) != null ? _d : locale.seconds
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
[
|
|
35
|
+
format == null ? void 0 : format.day,
|
|
36
|
+
format == null ? void 0 : format.hours,
|
|
37
|
+
format == null ? void 0 : format.minutes,
|
|
38
|
+
format == null ? void 0 : format.seconds,
|
|
39
|
+
locale.day,
|
|
40
|
+
locale.hours,
|
|
41
|
+
locale.minutes,
|
|
42
|
+
locale.seconds
|
|
43
|
+
]
|
|
44
|
+
);
|
|
45
|
+
const propsRef = useRef({
|
|
46
|
+
customStyle,
|
|
47
|
+
className,
|
|
48
|
+
format: mergedFormat,
|
|
49
|
+
isCard,
|
|
50
|
+
isShowDay,
|
|
51
|
+
isShowHour,
|
|
52
|
+
isShowMinute,
|
|
53
|
+
day,
|
|
54
|
+
hours,
|
|
55
|
+
minutes,
|
|
56
|
+
seconds,
|
|
57
|
+
onTimeUp
|
|
58
|
+
});
|
|
59
|
+
const isMountedRef = useRef(false);
|
|
60
|
+
const secondsRef = useRef(toSeconds(day, hours, minutes, seconds));
|
|
61
|
+
const timerRef = useRef();
|
|
62
|
+
const calculateTime = useCallback(() => {
|
|
63
|
+
let [calcDay, calcHours, calcMinutes, calcSeconds] = [0, 0, 0, 0];
|
|
64
|
+
if (secondsRef.current > 0) {
|
|
65
|
+
calcDay = isShowDay ? Math.floor(secondsRef.current / (60 * 60 * 24)) : 0;
|
|
66
|
+
calcHours = isShowHour ? Math.floor(secondsRef.current / (60 * 60)) - calcDay * 24 : 0;
|
|
67
|
+
calcMinutes = isShowMinute ? Math.floor(secondsRef.current / 60) - calcDay * 24 * 60 - calcHours * 60 : 0;
|
|
68
|
+
calcSeconds = Math.floor(secondsRef.current) - calcDay * 24 * 60 * 60 - calcHours * 60 * 60 - calcMinutes * 60;
|
|
47
69
|
}
|
|
48
70
|
return {
|
|
49
|
-
day,
|
|
50
|
-
hours,
|
|
51
|
-
minutes,
|
|
52
|
-
seconds
|
|
71
|
+
day: calcDay,
|
|
72
|
+
hours: calcHours,
|
|
73
|
+
minutes: calcMinutes,
|
|
74
|
+
seconds: calcSeconds
|
|
53
75
|
};
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
76
|
+
}, [isShowDay, isShowHour, isShowMinute]);
|
|
77
|
+
const initialTime = calculateTime();
|
|
78
|
+
const [_day, setDay] = useState(initialTime.day);
|
|
79
|
+
const [_hours, setHours] = useState(initialTime.hours);
|
|
80
|
+
const [_minutes, setMinutes] = useState(initialTime.minutes);
|
|
81
|
+
const [_seconds, setSeconds] = useState(initialTime.seconds);
|
|
82
|
+
const clearTimer = useCallback(() => {
|
|
83
|
+
if (timerRef.current) {
|
|
84
|
+
clearTimeout(timerRef.current);
|
|
85
|
+
timerRef.current = 0;
|
|
86
|
+
}
|
|
87
|
+
}, []);
|
|
88
|
+
const countdown = useCallback(() => {
|
|
89
|
+
const {
|
|
90
|
+
day: calcDay,
|
|
91
|
+
hours: calcHours,
|
|
92
|
+
minutes: calcMinutes,
|
|
93
|
+
seconds: calcSeconds
|
|
94
|
+
} = calculateTime();
|
|
95
|
+
setDay(calcDay);
|
|
96
|
+
setHours(calcHours);
|
|
97
|
+
setMinutes(calcMinutes);
|
|
98
|
+
setSeconds(calcSeconds);
|
|
99
|
+
secondsRef.current--;
|
|
100
|
+
if (secondsRef.current < 0) {
|
|
101
|
+
clearTimer();
|
|
102
|
+
onTimeUp && onTimeUp();
|
|
67
103
|
return;
|
|
68
104
|
}
|
|
69
|
-
|
|
70
|
-
|
|
105
|
+
timerRef.current = setTimeout(() => {
|
|
106
|
+
countdown();
|
|
71
107
|
}, 1e3);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
componentDidMount() {
|
|
81
|
-
this.setTimer();
|
|
82
|
-
}
|
|
83
|
-
componentWillUnmount() {
|
|
84
|
-
this.clearTimer();
|
|
85
|
-
}
|
|
86
|
-
componentDidHide() {
|
|
87
|
-
this.clearTimer();
|
|
88
|
-
}
|
|
89
|
-
componentDidShow() {
|
|
90
|
-
this.setTimer();
|
|
91
|
-
}
|
|
92
|
-
render() {
|
|
93
|
-
const {
|
|
108
|
+
}, [calculateTime, clearTimer, onTimeUp]);
|
|
109
|
+
const setTimer = useCallback(() => {
|
|
110
|
+
if (!timerRef.current) countdown();
|
|
111
|
+
}, [countdown]);
|
|
112
|
+
useEffect(() => {
|
|
113
|
+
propsRef.current = {
|
|
114
|
+
customStyle,
|
|
94
115
|
className,
|
|
116
|
+
format: mergedFormat,
|
|
117
|
+
isCard,
|
|
118
|
+
isShowDay,
|
|
119
|
+
isShowHour,
|
|
120
|
+
isShowMinute,
|
|
121
|
+
day,
|
|
122
|
+
hours,
|
|
123
|
+
minutes,
|
|
124
|
+
seconds,
|
|
125
|
+
onTimeUp
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
useEffect(() => {
|
|
129
|
+
const nextProps = {
|
|
95
130
|
customStyle,
|
|
96
|
-
|
|
131
|
+
className,
|
|
132
|
+
format: mergedFormat,
|
|
97
133
|
isCard,
|
|
98
134
|
isShowDay,
|
|
99
135
|
isShowHour,
|
|
100
|
-
isShowMinute
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
136
|
+
isShowMinute,
|
|
137
|
+
day,
|
|
138
|
+
hours,
|
|
139
|
+
minutes,
|
|
140
|
+
seconds,
|
|
141
|
+
onTimeUp
|
|
142
|
+
};
|
|
143
|
+
if (!isMountedRef.current) {
|
|
144
|
+
isMountedRef.current = true;
|
|
145
|
+
propsRef.current = nextProps;
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (JSON.stringify(propsRef.current) === JSON.stringify(nextProps)) return;
|
|
149
|
+
propsRef.current = nextProps;
|
|
150
|
+
secondsRef.current = toSeconds(day, hours, minutes, seconds);
|
|
151
|
+
clearTimer();
|
|
152
|
+
setTimer();
|
|
153
|
+
}, [
|
|
154
|
+
customStyle,
|
|
155
|
+
className,
|
|
156
|
+
mergedFormat,
|
|
157
|
+
isCard,
|
|
158
|
+
isShowDay,
|
|
159
|
+
isShowHour,
|
|
160
|
+
isShowMinute,
|
|
161
|
+
day,
|
|
162
|
+
hours,
|
|
163
|
+
minutes,
|
|
164
|
+
seconds,
|
|
165
|
+
onTimeUp,
|
|
166
|
+
clearTimer,
|
|
167
|
+
setTimer
|
|
168
|
+
]);
|
|
169
|
+
useEffect(() => {
|
|
170
|
+
setTimer();
|
|
171
|
+
return () => {
|
|
172
|
+
clearTimer();
|
|
173
|
+
};
|
|
174
|
+
}, [setTimer, clearTimer]);
|
|
175
|
+
useDidHide(() => {
|
|
176
|
+
clearTimer();
|
|
177
|
+
});
|
|
178
|
+
useDidShow(() => {
|
|
179
|
+
setTimer();
|
|
180
|
+
});
|
|
181
|
+
return /* @__PURE__ */ React.createElement(
|
|
182
|
+
View,
|
|
183
|
+
{
|
|
184
|
+
className: classNames(
|
|
185
|
+
{
|
|
186
|
+
"at-countdown": true,
|
|
187
|
+
"at-countdown--card": isCard
|
|
188
|
+
},
|
|
189
|
+
className
|
|
190
|
+
),
|
|
191
|
+
style: customStyle
|
|
192
|
+
},
|
|
193
|
+
isShowDay && /* @__PURE__ */ React.createElement(AtCountdownItem, { num: _day, separator: mergedFormat.day }),
|
|
194
|
+
isShowHour && /* @__PURE__ */ React.createElement(AtCountdownItem, { num: _hours, separator: mergedFormat.hours }),
|
|
195
|
+
isShowMinute && /* @__PURE__ */ React.createElement(AtCountdownItem, { num: _minutes, separator: mergedFormat.minutes }),
|
|
196
|
+
/* @__PURE__ */ React.createElement(AtCountdownItem, { num: _seconds, separator: mergedFormat.seconds })
|
|
197
|
+
);
|
|
121
198
|
}
|
|
122
|
-
AtCountdown.defaultProps = {
|
|
123
|
-
customStyle: "",
|
|
124
|
-
className: "",
|
|
125
|
-
isCard: false,
|
|
126
|
-
isShowDay: false,
|
|
127
|
-
isShowHour: true,
|
|
128
|
-
isShowMinute: true,
|
|
129
|
-
format: defaultFormat,
|
|
130
|
-
day: 0,
|
|
131
|
-
hours: 0,
|
|
132
|
-
minutes: 0,
|
|
133
|
-
seconds: 0
|
|
134
|
-
};
|
|
135
199
|
AtCountdown.propTypes = {
|
|
136
200
|
customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
|
|
137
201
|
className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),
|
|
@@ -146,7 +210,8 @@ AtCountdown.propTypes = {
|
|
|
146
210
|
seconds: PropTypes.number,
|
|
147
211
|
onTimeUp: PropTypes.func
|
|
148
212
|
};
|
|
213
|
+
var countdown_default = AtCountdown;
|
|
149
214
|
export {
|
|
150
|
-
|
|
215
|
+
countdown_default as default
|
|
151
216
|
};
|
|
152
217
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/countdown/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes, { InferProps } from 'prop-types'\nimport React from 'react'\nimport { View } from '@tarojs/components'\nimport { AtCountDownProps, AtCountdownState } from '../../../types/countdown'\nimport AtCountdownItem from './item'\n\ntype TimeObject = {\n day: number\n hours: number\n minutes: number\n seconds: number\n}\n\nconst toSeconds = (\n day: number,\n hours: number,\n minutes: number,\n seconds: number\n): number => day * 60 * 60 * 24 + hours * 60 * 60 + minutes * 60 + seconds\n\nconst defaultFormat = {\n day: '天',\n hours: '时',\n minutes: '分',\n seconds: '秒'\n}\n\nexport default class AtCountdown extends React.Component<\n AtCountDownProps,\n AtCountdownState\n> {\n public static defaultProps: AtCountDownProps\n public static propTypes: InferProps<AtCountDownProps>\n\n private seconds: number\n private timer: NodeJS.Timeout | number | undefined\n\n public constructor(props: AtCountDownProps) {\n super(props)\n const { day = 0, hours = 0, minutes = 0, seconds = 0 } = this.props\n this.seconds = toSeconds(day, hours, minutes, seconds)\n const {\n day: _day,\n hours: _hours,\n minutes: _minutes,\n seconds: _seconds\n } = this.calculateTime()\n\n this.state = {\n _day,\n _hours,\n _minutes,\n _seconds\n }\n }\n\n private setTimer(): void {\n if (!this.timer) this.countdonwn()\n }\n\n private clearTimer(): void {\n if (this.timer) {\n clearTimeout(this.timer as number)\n this.timer = 0\n }\n }\n\n private calculateTime(): TimeObject {\n let [day, hours, minutes, seconds] = [0, 0, 0, 0]\n\n if (this.seconds > 0) {\n day = this.props.isShowDay ? Math.floor(this.seconds / (60 * 60 * 24)) : 0\n hours = this.props.isShowHour\n ? Math.floor(this.seconds / (60 * 60)) - day * 24\n : 0\n minutes = this.props.isShowMinute\n ? Math.floor(this.seconds / 60) - day * 24 * 60 - hours * 60\n : 0\n seconds =\n Math.floor(this.seconds) -\n day * 24 * 60 * 60 -\n hours * 60 * 60 -\n minutes * 60\n }\n return {\n day,\n hours,\n minutes,\n seconds\n }\n }\n\n private countdonwn(): void {\n const { day, hours, minutes, seconds } = this.calculateTime()\n\n this.setState({\n _day: day,\n _hours: hours,\n _minutes: minutes,\n _seconds: seconds\n })\n this.seconds--\n\n if (this.seconds < 0) {\n this.clearTimer()\n this.props.onTimeUp && this.props.onTimeUp()\n return\n }\n\n this.timer = setTimeout(() => {\n this.countdonwn()\n }, 1000)\n }\n\n public UNSAFE_componentWillReceiveProps(nextProps: AtCountDownProps): void {\n if (JSON.stringify(this.props) === JSON.stringify(nextProps)) return\n\n const { day = 0, hours = 0, minutes = 0, seconds = 0 } = nextProps\n this.seconds = toSeconds(day, hours, minutes, seconds)\n this.clearTimer()\n this.setTimer()\n }\n\n public componentDidMount(): void {\n this.setTimer()\n }\n\n public componentWillUnmount(): void {\n this.clearTimer()\n }\n\n public componentDidHide(): void {\n this.clearTimer()\n }\n\n public componentDidShow(): void {\n this.setTimer()\n }\n\n public render(): JSX.Element {\n const {\n className,\n customStyle,\n format = defaultFormat,\n isCard,\n isShowDay,\n isShowHour,\n isShowMinute\n } = this.props\n\n const { _day, _hours, _minutes, _seconds } = this.state\n\n return (\n <View\n className={classNames(\n {\n 'at-countdown': true,\n 'at-countdown--card': isCard\n },\n className\n )}\n style={customStyle}\n >\n {isShowDay && (\n <AtCountdownItem num={_day} separator={format?.day || '天'} />\n )}\n {isShowHour && (\n <AtCountdownItem num={_hours} separator={format?.hours || ''} />\n )}\n {isShowMinute && (\n <AtCountdownItem num={_minutes} separator={format?.minutes || ''} />\n )}\n <AtCountdownItem num={_seconds} separator={format?.seconds || ''} />\n </View>\n )\n }\n}\n\nAtCountdown.defaultProps = {\n customStyle: '',\n className: '',\n isCard: false,\n isShowDay: false,\n isShowHour: true,\n isShowMinute: true,\n format: defaultFormat,\n day: 0,\n hours: 0,\n minutes: 0,\n seconds: 0\n}\n\nAtCountdown.propTypes = {\n customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n isCard: PropTypes.bool,\n isShowDay: PropTypes.bool,\n isShowHour: PropTypes.bool,\n isShowMinute: PropTypes.bool,\n format: PropTypes.object,\n day: PropTypes.number,\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number,\n onTimeUp: PropTypes.func\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/countdown/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes from 'prop-types'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { View } from '@tarojs/components'\nimport { useDidHide, useDidShow } from '@tarojs/taro'\nimport { useComponentLocale } from '../../hooks/useComponentLocale'\nimport { AtCountDownProps } from '../../../types/countdown'\nimport AtCountdownItem from './item'\n\ntype TimeObject = {\n day: number\n hours: number\n minutes: number\n seconds: number\n}\n\nconst toSeconds = (\n day: number,\n hours: number,\n minutes: number,\n seconds: number\n): number => day * 60 * 60 * 24 + hours * 60 * 60 + minutes * 60 + seconds\n\nfunction AtCountdown({\n customStyle = '',\n className = '',\n format,\n isCard = false,\n isShowDay = false,\n isShowHour = true,\n isShowMinute = true,\n day = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n onTimeUp\n}: AtCountDownProps): JSX.Element {\n const locale = useComponentLocale('Countdown')\n const mergedFormat = useMemo(\n () => ({\n day: format?.day ?? locale.day,\n hours: format?.hours ?? locale.hours,\n minutes: format?.minutes ?? locale.minutes,\n seconds: format?.seconds ?? locale.seconds\n }),\n [\n format?.day,\n format?.hours,\n format?.minutes,\n format?.seconds,\n locale.day,\n locale.hours,\n locale.minutes,\n locale.seconds\n ]\n )\n const propsRef = useRef<AtCountDownProps>({\n customStyle,\n className,\n format: mergedFormat,\n isCard,\n isShowDay,\n isShowHour,\n isShowMinute,\n day,\n hours,\n minutes,\n seconds,\n onTimeUp\n })\n const isMountedRef = useRef(false)\n const secondsRef = useRef(toSeconds(day, hours, minutes, seconds))\n const timerRef = useRef<NodeJS.Timeout | number>()\n\n const calculateTime = useCallback((): TimeObject => {\n let [calcDay, calcHours, calcMinutes, calcSeconds] = [0, 0, 0, 0]\n\n if (secondsRef.current > 0) {\n calcDay = isShowDay ? Math.floor(secondsRef.current / (60 * 60 * 24)) : 0\n calcHours = isShowHour\n ? Math.floor(secondsRef.current / (60 * 60)) - calcDay * 24\n : 0\n calcMinutes = isShowMinute\n ? Math.floor(secondsRef.current / 60) -\n calcDay * 24 * 60 -\n calcHours * 60\n : 0\n calcSeconds =\n Math.floor(secondsRef.current) -\n calcDay * 24 * 60 * 60 -\n calcHours * 60 * 60 -\n calcMinutes * 60\n }\n return {\n day: calcDay,\n hours: calcHours,\n minutes: calcMinutes,\n seconds: calcSeconds\n }\n }, [isShowDay, isShowHour, isShowMinute])\n\n const initialTime = calculateTime()\n const [_day, setDay] = useState(initialTime.day)\n const [_hours, setHours] = useState(initialTime.hours)\n const [_minutes, setMinutes] = useState(initialTime.minutes)\n const [_seconds, setSeconds] = useState(initialTime.seconds)\n\n const clearTimer = useCallback((): void => {\n if (timerRef.current) {\n clearTimeout(timerRef.current as number)\n timerRef.current = 0\n }\n }, [])\n\n const countdown = useCallback((): void => {\n const {\n day: calcDay,\n hours: calcHours,\n minutes: calcMinutes,\n seconds: calcSeconds\n } = calculateTime()\n\n setDay(calcDay)\n setHours(calcHours)\n setMinutes(calcMinutes)\n setSeconds(calcSeconds)\n secondsRef.current--\n\n if (secondsRef.current < 0) {\n clearTimer()\n onTimeUp && onTimeUp()\n return\n }\n\n timerRef.current = setTimeout(() => {\n countdown()\n }, 1000)\n }, [calculateTime, clearTimer, onTimeUp])\n\n const setTimer = useCallback((): void => {\n if (!timerRef.current) countdown()\n }, [countdown])\n\n useEffect(() => {\n propsRef.current = {\n customStyle,\n className,\n format: mergedFormat,\n isCard,\n isShowDay,\n isShowHour,\n isShowMinute,\n day,\n hours,\n minutes,\n seconds,\n onTimeUp\n }\n })\n\n useEffect(() => {\n const nextProps = {\n customStyle,\n className,\n format: mergedFormat,\n isCard,\n isShowDay,\n isShowHour,\n isShowMinute,\n day,\n hours,\n minutes,\n seconds,\n onTimeUp\n }\n if (!isMountedRef.current) {\n isMountedRef.current = true\n propsRef.current = nextProps\n return\n }\n if (JSON.stringify(propsRef.current) === JSON.stringify(nextProps)) return\n\n propsRef.current = nextProps\n secondsRef.current = toSeconds(day, hours, minutes, seconds)\n clearTimer()\n setTimer()\n }, [\n customStyle,\n className,\n mergedFormat,\n isCard,\n isShowDay,\n isShowHour,\n isShowMinute,\n day,\n hours,\n minutes,\n seconds,\n onTimeUp,\n clearTimer,\n setTimer\n ])\n\n useEffect(() => {\n setTimer()\n return () => {\n clearTimer()\n }\n }, [setTimer, clearTimer])\n\n useDidHide(() => {\n clearTimer()\n })\n\n useDidShow(() => {\n setTimer()\n })\n\n return (\n <View\n className={classNames(\n {\n 'at-countdown': true,\n 'at-countdown--card': isCard\n },\n className\n )}\n style={customStyle}\n >\n {isShowDay && <AtCountdownItem num={_day} separator={mergedFormat.day} />}\n {isShowHour && (\n <AtCountdownItem num={_hours} separator={mergedFormat.hours} />\n )}\n {isShowMinute && (\n <AtCountdownItem num={_minutes} separator={mergedFormat.minutes} />\n )}\n <AtCountdownItem num={_seconds} separator={mergedFormat.seconds} />\n </View>\n )\n}\n\nAtCountdown.propTypes = {\n customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n isCard: PropTypes.bool,\n isShowDay: PropTypes.bool,\n isShowHour: PropTypes.bool,\n isShowMinute: PropTypes.bool,\n format: PropTypes.object,\n day: PropTypes.number,\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number,\n onTimeUp: PropTypes.func\n}\n\nexport default AtCountdown\n"],"mappings":"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","names":[]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import React from 'react';
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
3
2
|
import { AtCountdownItemProps } from '../../../../types/countdown';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
declare function AtCountdownItem({ num, separator }: AtCountdownItemProps): JSX.Element;
|
|
4
|
+
declare namespace AtCountdownItem {
|
|
5
|
+
var propTypes: {
|
|
6
|
+
num: PropTypes.Validator<number>;
|
|
7
|
+
separator: PropTypes.Requireable<string>;
|
|
8
|
+
};
|
|
9
9
|
}
|
|
10
|
+
export default AtCountdownItem;
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
import PropTypes from "prop-types";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { Text, View } from "@tarojs/components";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
4
|
+
function formatNum(num) {
|
|
5
|
+
return num <= 9 ? `0${num}` : `${num}`;
|
|
6
|
+
}
|
|
7
|
+
function AtCountdownItem({
|
|
8
|
+
num = 0,
|
|
9
|
+
separator = ":"
|
|
10
|
+
}) {
|
|
11
|
+
return /* @__PURE__ */ React.createElement(View, { className: "at-countdown__item" }, /* @__PURE__ */ React.createElement(View, { className: "at-countdown__time-box" }, /* @__PURE__ */ React.createElement(Text, { className: "at-countdown__time" }, formatNum(num))), /* @__PURE__ */ React.createElement(Text, { className: "at-countdown__separator" }, separator));
|
|
12
12
|
}
|
|
13
|
-
AtCountdownItem.defaultProps = {
|
|
14
|
-
num: 0,
|
|
15
|
-
separator: ":"
|
|
16
|
-
};
|
|
17
13
|
AtCountdownItem.propTypes = {
|
|
18
14
|
num: PropTypes.number.isRequired,
|
|
19
15
|
separator: PropTypes.string
|
|
20
16
|
};
|
|
17
|
+
var item_default = AtCountdownItem;
|
|
21
18
|
export {
|
|
22
|
-
|
|
19
|
+
item_default as default
|
|
23
20
|
};
|
|
24
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/countdown/item/index.tsx"],"sourcesContent":["import PropTypes
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/countdown/item/index.tsx"],"sourcesContent":["import PropTypes from 'prop-types'\nimport React from 'react'\nimport { Text, View } from '@tarojs/components'\nimport { AtCountdownItemProps } from '../../../../types/countdown'\n\nfunction formatNum(num: number): string {\n return num <= 9 ? `0${num}` : `${num}`\n}\n\nfunction AtCountdownItem({\n num = 0,\n separator = ':'\n}: AtCountdownItemProps): JSX.Element {\n return (\n <View className='at-countdown__item'>\n <View className='at-countdown__time-box'>\n <Text className='at-countdown__time'>{formatNum(num)}</Text>\n </View>\n <Text className='at-countdown__separator'>{separator}</Text>\n </View>\n )\n}\n\nAtCountdownItem.propTypes = {\n num: PropTypes.number.isRequired,\n separator: PropTypes.string\n}\n\nexport default AtCountdownItem\n"],"mappings":"AAAA,OAAO,eAAe;AACtB,OAAO,WAAW;AAClB,SAAS,MAAM,YAAY;AAG3B,SAAS,UAAU,KAAqB;AACtC,SAAO,OAAO,IAAI,IAAI,GAAG,KAAK,GAAG,GAAG;AACtC;AAEA,SAAS,gBAAgB;AAAA,EACvB,MAAM;AAAA,EACN,YAAY;AACd,GAAsC;AACpC,SACE,oCAAC,QAAK,WAAU,wBACd,oCAAC,QAAK,WAAU,4BACd,oCAAC,QAAK,WAAU,wBAAsB,UAAU,GAAG,CAAE,CACvD,GACA,oCAAC,QAAK,WAAU,6BAA2B,SAAU,CACvD;AAEJ;AAEA,gBAAgB,YAAY;AAAA,EAC1B,KAAK,UAAU,OAAO;AAAA,EACtB,WAAW,UAAU;AACvB;AAEA,IAAO,eAAQ;","names":[]}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import React from 'react';
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
3
2
|
import { AtCurtainProps } from '../../../types/curtain';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
declare function AtCurtain({ className, customStyle, isOpened, closeBtnPosition, onClose, children }: AtCurtainProps): JSX.Element;
|
|
4
|
+
declare namespace AtCurtain {
|
|
5
|
+
var propTypes: {
|
|
6
|
+
customStyle: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
|
|
7
|
+
className: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>;
|
|
8
|
+
isOpened: PropTypes.Requireable<boolean>;
|
|
9
|
+
closeBtnPosition: PropTypes.Requireable<string>;
|
|
10
|
+
onClose: PropTypes.Requireable<(...args: any[]) => any>;
|
|
11
|
+
};
|
|
10
12
|
}
|
|
13
|
+
export default AtCurtain;
|
|
@@ -2,53 +2,43 @@ import classNames from "classnames";
|
|
|
2
2
|
import PropTypes from "prop-types";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { View } from "@tarojs/components";
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import { noop } from "../../common/utils";
|
|
6
|
+
function AtCurtain({
|
|
7
|
+
className = "",
|
|
8
|
+
customStyle = "",
|
|
9
|
+
isOpened = false,
|
|
10
|
+
closeBtnPosition = "bottom",
|
|
11
|
+
onClose = noop,
|
|
12
|
+
children
|
|
13
|
+
}) {
|
|
14
|
+
const handleClose = (e) => {
|
|
7
15
|
e.stopPropagation();
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
16
|
+
onClose(e);
|
|
17
|
+
};
|
|
18
|
+
const stopPropagation = (e) => {
|
|
11
19
|
e.stopPropagation();
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/* @__PURE__ */ React.createElement(View, { className: "at-curtain__container" }, /* @__PURE__ */ React.createElement(View, { className: "at-curtain__body" }, this.props.children, /* @__PURE__ */ React.createElement(
|
|
34
|
-
View,
|
|
35
|
-
{
|
|
36
|
-
className: btnCloseClass,
|
|
37
|
-
onClick: this.onClose.bind(this)
|
|
38
|
-
}
|
|
39
|
-
)))
|
|
40
|
-
);
|
|
41
|
-
}
|
|
20
|
+
};
|
|
21
|
+
const curtainClass = classNames(
|
|
22
|
+
{
|
|
23
|
+
"at-curtain": true,
|
|
24
|
+
"at-curtain--closed": !isOpened
|
|
25
|
+
},
|
|
26
|
+
className
|
|
27
|
+
);
|
|
28
|
+
const btnCloseClass = classNames({
|
|
29
|
+
"at-curtain__btn-close": true,
|
|
30
|
+
[`at-curtain__btn-close--${closeBtnPosition}`]: closeBtnPosition
|
|
31
|
+
});
|
|
32
|
+
return /* @__PURE__ */ React.createElement(
|
|
33
|
+
View,
|
|
34
|
+
{
|
|
35
|
+
className: curtainClass,
|
|
36
|
+
style: customStyle,
|
|
37
|
+
onClick: stopPropagation
|
|
38
|
+
},
|
|
39
|
+
/* @__PURE__ */ React.createElement(View, { className: "at-curtain__container" }, /* @__PURE__ */ React.createElement(View, { className: "at-curtain__body" }, children, /* @__PURE__ */ React.createElement(View, { className: btnCloseClass, onClick: handleClose })))
|
|
40
|
+
);
|
|
42
41
|
}
|
|
43
|
-
AtCurtain.defaultProps = {
|
|
44
|
-
customStyle: "",
|
|
45
|
-
className: "",
|
|
46
|
-
isOpened: false,
|
|
47
|
-
closeBtnPosition: "bottom",
|
|
48
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
49
|
-
onClose: () => {
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
42
|
AtCurtain.propTypes = {
|
|
53
43
|
customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
|
|
54
44
|
className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),
|
|
@@ -56,7 +46,8 @@ AtCurtain.propTypes = {
|
|
|
56
46
|
closeBtnPosition: PropTypes.string,
|
|
57
47
|
onClose: PropTypes.func
|
|
58
48
|
};
|
|
49
|
+
var curtain_default = AtCurtain;
|
|
59
50
|
export {
|
|
60
|
-
|
|
51
|
+
curtain_default as default
|
|
61
52
|
};
|
|
62
53
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/curtain/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes
|
|
1
|
+
{"version":3,"sources":["../../../src/components/curtain/index.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport PropTypes from 'prop-types'\nimport React from 'react'\nimport { View } from '@tarojs/components'\nimport { CommonEvent } from '@tarojs/components/types/common'\nimport { AtCurtainProps } from '../../../types/curtain'\nimport { noop } from '../../common/utils'\n\nfunction AtCurtain({\n className = '',\n customStyle = '',\n isOpened = false,\n closeBtnPosition = 'bottom',\n onClose = noop,\n children\n}: AtCurtainProps): JSX.Element {\n const handleClose = (e: CommonEvent): void => {\n e.stopPropagation()\n onClose(e)\n }\n\n const stopPropagation = (e: CommonEvent): void => {\n e.stopPropagation()\n }\n\n const curtainClass = classNames(\n {\n 'at-curtain': true,\n 'at-curtain--closed': !isOpened\n },\n className\n )\n const btnCloseClass = classNames({\n 'at-curtain__btn-close': true,\n [`at-curtain__btn-close--${closeBtnPosition}`]: closeBtnPosition\n })\n\n return (\n <View\n className={curtainClass}\n style={customStyle}\n onClick={stopPropagation}\n >\n <View className='at-curtain__container'>\n <View className='at-curtain__body'>\n {children}\n <View className={btnCloseClass} onClick={handleClose}></View>\n </View>\n </View>\n </View>\n )\n}\n\nAtCurtain.propTypes = {\n customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n isOpened: PropTypes.bool,\n closeBtnPosition: PropTypes.string,\n onClose: PropTypes.func\n}\n\nexport default AtCurtain\n"],"mappings":"AAAA,OAAO,gBAAgB;AACvB,OAAO,eAAe;AACtB,OAAO,WAAW;AAClB,SAAS,YAAY;AAGrB,SAAS,YAAY;AAErB,SAAS,UAAU;AAAA,EACjB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,UAAU;AAAA,EACV;AACF,GAAgC;AAC9B,QAAM,cAAc,CAAC,MAAyB;AAC5C,MAAE,gBAAgB;AAClB,YAAQ,CAAC;AAAA,EACX;AAEA,QAAM,kBAAkB,CAAC,MAAyB;AAChD,MAAE,gBAAgB;AAAA,EACpB;AAEA,QAAM,eAAe;AAAA,IACnB;AAAA,MACE,cAAc;AAAA,MACd,sBAAsB,CAAC;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AACA,QAAM,gBAAgB,WAAW;AAAA,IAC/B,yBAAyB;AAAA,IACzB,CAAC,0BAA0B,gBAAgB,EAAE,GAAG;AAAA,EAClD,CAAC;AAED,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,OAAO;AAAA,MACP,SAAS;AAAA;AAAA,IAET,oCAAC,QAAK,WAAU,2BACd,oCAAC,QAAK,WAAU,sBACb,UACD,oCAAC,QAAK,WAAW,eAAe,SAAS,aAAa,CACxD,CACF;AAAA,EACF;AAEJ;AAEA,UAAU,YAAY;AAAA,EACpB,aAAa,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC;AAAA,EACrE,WAAW,UAAU,UAAU,CAAC,UAAU,OAAO,UAAU,MAAM,CAAC;AAAA,EAClE,UAAU,UAAU;AAAA,EACpB,kBAAkB,UAAU;AAAA,EAC5B,SAAS,UAAU;AACrB;AAEA,IAAO,kBAAQ;","names":[]}
|