taro-react-uilib 1.4.19-3 → 1.4.19-4

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.
@@ -0,0 +1,22 @@
1
+ @import "../../styles/themes/variable.scss";
2
+
3
+ #{$xh-prefix}-countdown {
4
+ display: flex;
5
+ align-items: center;
6
+ &-time{
7
+ min-width: 32px;
8
+ height: 32px;
9
+ line-height: 32px;
10
+ background: var(--color-primary-secondary);
11
+ border-radius: 6px;
12
+ color: var(--color-primary-reverse);
13
+ font-size: 24px;
14
+ text-align: center;
15
+ }
16
+ &-dot{
17
+ color: var(--color-primary-secondary);
18
+ padding: 3px;
19
+ font-weight: 500;
20
+ font-size: 18px;
21
+ }
22
+ }
@@ -11,6 +11,7 @@
11
11
  @import './cell.scss';
12
12
  @import './checkbox.scss';
13
13
  @import './collapse.scss';
14
+ @import './countdown.scss';
14
15
  @import './dialog.scss';
15
16
  @import './dialogref.scss';
16
17
  @import './echarts.scss';
@@ -0,0 +1,68 @@
1
+ import React, { useState, useEffect, useRef } from "react";
2
+ import { View } from "@tarojs/components";
3
+ import "./index.scss";
4
+ const Countdown = props => {
5
+ const { expireDate, overTimeCb, customStyle = false, isPause = false, onTimeChange, } = props;
6
+ const [hour, setHour] = useState("");
7
+ const [min, setMin] = useState("");
8
+ const [sec, setSec] = useState("");
9
+ const [showTime, setShowTime] = useState(false);
10
+ const timer = useRef(null);
11
+ let counttime = 0;
12
+ const countdown = () => {
13
+ let h;
14
+ let m;
15
+ let s;
16
+ const endTime = new Date(expireDate).getTime();
17
+ let nowTime = Date.now();
18
+ const distance = endTime - nowTime;
19
+ /** 剩余时间 */
20
+ onTimeChange && onTimeChange(distance);
21
+ counttime = Math.floor(distance / 1000);
22
+ /** 截止时间过期,不展示倒计时 */
23
+ if (counttime <= 0) {
24
+ setShowTime(false);
25
+ clearInterval(timer.current);
26
+ overTimeCb === null || overTimeCb === void 0 ? void 0 : overTimeCb();
27
+ return;
28
+ }
29
+ setShowTime(true);
30
+ // 秒
31
+ s = counttime % 60;
32
+ s = s < 10 ? "0" + s : s;
33
+ setSec(s);
34
+ // 分
35
+ m = Math.floor((counttime / 60) % 60);
36
+ m = m < 10 ? "0" + m : m;
37
+ setMin(m);
38
+ // 小时
39
+ h = Math.floor(counttime / 60 / 60);
40
+ h = h < 10 ? "0" + h : h;
41
+ setHour(h);
42
+ };
43
+ useEffect(() => {
44
+ // 调用setInterval()方法:间隔指定的毫秒数不停地执行
45
+ if (expireDate) {
46
+ clearInterval(timer.current);
47
+ if (!isPause) {
48
+ timer.current = setInterval(() => {
49
+ countdown();
50
+ }, 1000);
51
+ }
52
+ }
53
+ }, [expireDate, isPause]);
54
+ return (React.createElement(React.Fragment, null, showTime &&
55
+ (customStyle ? (React.createElement(React.Fragment, null,
56
+ hour,
57
+ ":",
58
+ min,
59
+ ":",
60
+ sec)) : (React.createElement(View, { className: "xh-countdown" },
61
+ React.createElement(View, { className: "xh-countdown-time" }, hour),
62
+ React.createElement(View, { className: "xh-countdown-dot" }, ":"),
63
+ React.createElement(View, { className: "xh-countdown-time" }, min),
64
+ React.createElement(View, { className: "xh-countdown-dot" }, ":"),
65
+ React.createElement(View, { className: "xh-countdown-time" }, sec))))));
66
+ };
67
+ export default Countdown;
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Countdown/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,cAAc,CAAC;AAUtB,MAAM,SAAS,GAA6B,KAAK,CAAC,EAAE;IAClD,MAAM,EACJ,UAAU,EACV,UAAU,EACV,WAAW,GAAG,KAAK,EACnB,OAAO,GAAG,KAAK,EACf,YAAY,GACb,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,CAAM,IAAI,CAAC,CAAC;IAEhC,IAAI,SAAS,GAAW,CAAC,CAAC;IAE1B,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,CAAC,CAAC;QACN,IAAI,CAAC,CAAC;QACN,IAAI,CAAC,CAAC;QAEN,MAAM,OAAO,GAAW,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;QACnC,WAAW;QACX,YAAY,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;QAEvC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAExC,oBAAoB;QACpB,IAAI,SAAS,IAAI,CAAC,EAAE;YAClB,WAAW,CAAC,KAAK,CAAC,CAAC;YACnB,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,UAAU,aAAV,UAAU,uBAAV,UAAU,EAAI,CAAC;YACf,OAAO;SACR;QACD,WAAW,CAAC,IAAI,CAAC,CAAC;QAElB,IAAI;QACJ,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC;QACnB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,CAAC,CAAC,CAAC;QACV,IAAI;QACJ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QACtC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,CAAC,CAAC,CAAC;QACV,KAAK;QACL,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACpC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC,CAAC,CAAC;IACb,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,kCAAkC;QAClC,IAAI,UAAU,EAAE;YACd,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE;gBACZ,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC/B,SAAS,EAAE,CAAC;gBACd,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;SACF;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,QACZ,QAAQ;QACP,CAAC,WAAW,CAAC,CAAC,CAAC,CACb,oBAAC,KAAK,CAAC,QAAQ;YACZ,IAAI;;YAAG,GAAG;;YAAG,GAAG,CACF,CAClB,CAAC,CAAC,CAAC,CACF,oBAAC,IAAI,IAAC,SAAS,EAAC,cAAc;YAC5B,oBAAC,IAAI,IAAC,SAAS,EAAC,mBAAmB,IAAE,IAAI,CAAQ;YACjD,oBAAC,IAAI,IAAC,SAAS,EAAC,kBAAkB,QAAS;YAC3C,oBAAC,IAAI,IAAC,SAAS,EAAC,mBAAmB,IAAE,GAAG,CAAQ;YAChD,oBAAC,IAAI,IAAC,SAAS,EAAC,kBAAkB,QAAS;YAC3C,oBAAC,IAAI,IAAC,SAAS,EAAC,mBAAmB,IAAE,GAAG,CAAQ,CAC3C,CACR,CAAC,CACW,CAClB,CAAC;AACJ,CAAC,CAAC;AACF,eAAe,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taro-react-uilib",
3
- "version": "1.4.19-3",
3
+ "version": "1.4.19-4",
4
4
  "description": "基于taro的跨端组件库",
5
5
  "templateInfo": {
6
6
  "name": "default",
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import "./index.scss";
3
+ export declare type CountdownProps = {
4
+ expireDate: string | number;
5
+ overTimeCb?: () => void;
6
+ customStyle?: boolean;
7
+ isPause?: boolean;
8
+ onTimeChange?: (distance: number) => void;
9
+ };
10
+ declare const Countdown: React.FC<CountdownProps>;
11
+ export default Countdown;