parsec-hooks 1.0.15 → 1.0.18

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,10 @@
1
+ export declare const setTimeInterval: (fn: () => void, ms: number) => number;
2
+ export declare const clearTimeInterval: (id: number) => void;
1
3
  declare const _default: () => {
2
4
  countdown: number;
3
- clearCountdownTimer: () => boolean;
5
+ clearCountdownTimer: () => void;
4
6
  stopCountdownTimer: () => void;
5
- setCountdown: (s: number) => Promise<unknown>;
7
+ setCountdown: (s: number, onChange?: (count: number) => void) => Promise<unknown>;
6
8
  countdownText: string;
7
9
  };
8
10
  export default _default;
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.default = exports.clearTimeInterval = exports.setTimeInterval = void 0;
9
9
 
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
 
@@ -13,60 +13,83 @@ var _react = require("react");
13
13
 
14
14
  var _refStateHooks = _interopRequireDefault(require("../refStateHooks"));
15
15
 
16
+ var stops = {};
17
+
18
+ var setTimeInterval = function setTimeInterval(fn, ms) {
19
+ var id = Math.random();
20
+ var startTime = +new Date();
21
+
22
+ var start = function start(prev) {
23
+ if (stops[id] === false) {
24
+ return;
25
+ }
26
+
27
+ var now = +new Date();
28
+
29
+ if (now - prev > ms) {
30
+ fn();
31
+ requestAnimationFrame(function () {
32
+ return start(now);
33
+ });
34
+ } else {
35
+ requestAnimationFrame(function () {
36
+ return start(prev);
37
+ });
38
+ }
39
+ };
40
+
41
+ requestAnimationFrame(function () {
42
+ return start(startTime);
43
+ });
44
+ return id;
45
+ };
46
+
47
+ exports.setTimeInterval = setTimeInterval;
48
+
49
+ var clearTimeInterval = function clearTimeInterval(id) {
50
+ stops[id] = false;
51
+ };
52
+
53
+ exports.clearTimeInterval = clearTimeInterval;
54
+
16
55
  var _default = function _default() {
17
56
  var _useRefState = (0, _refStateHooks.default)(0),
18
57
  _useRefState2 = (0, _slicedToArray2.default)(_useRefState, 2),
19
58
  countdown = _useRefState2[0],
20
59
  setCountdown = _useRefState2[1];
21
60
 
22
- var stopRef = (0, _react.useRef)(false);
61
+ var timer = (0, _react.useRef)();
23
62
  var clearCountdownTimer = (0, _react.useCallback)(function () {
24
- return stopRef.current = true;
63
+ return timer.current && clearTimeInterval(timer.current);
25
64
  }, []);
26
65
  var stopCountdownTimer = (0, _react.useCallback)(function () {
27
66
  clearCountdownTimer();
28
67
  setCountdown(0);
29
68
  }, [clearCountdownTimer, setCountdown]);
69
+ (0, _react.useEffect)(function () {
70
+ return clearCountdownTimer;
71
+ }, [clearCountdownTimer]);
30
72
  return {
31
73
  countdown: countdown,
32
74
  clearCountdownTimer: clearCountdownTimer,
33
75
  stopCountdownTimer: stopCountdownTimer,
34
- setCountdown: (0, _react.useCallback)(function (s) {
76
+ setCountdown: (0, _react.useCallback)(function (s, onChange) {
35
77
  return new Promise(function (resolve) {
36
- stopRef.current = false;
37
- setCountdown(s);
38
- var startTime = +new Date();
78
+ clearCountdownTimer();
79
+ var countdown = s;
80
+ setCountdown(countdown);
81
+ timer.current = setTimeInterval(function () {
82
+ countdown--;
83
+ onChange === null || onChange === void 0 ? void 0 : onChange(countdown);
84
+ setCountdown(countdown);
39
85
 
40
- var start = function start(prev) {
41
- var now = +new Date();
42
-
43
- if (stopRef.current) {
44
- return;
45
- }
46
-
47
- if (now - prev > 1000) {
48
- var count = s - Math.round((now - startTime) / 1000);
49
- setCountdown(count);
50
-
51
- if (count <= 0) {
52
- resolve();
53
- } else {
54
- requestAnimationFrame(function () {
55
- return start(now);
56
- });
57
- }
58
- } else {
59
- requestAnimationFrame(function () {
60
- return start(prev);
61
- });
86
+ if (!countdown) {
87
+ clearCountdownTimer();
88
+ resolve();
62
89
  }
63
- };
64
-
65
- requestAnimationFrame(function () {
66
- return start(startTime);
67
- });
90
+ }, 1000);
68
91
  });
69
- }, [setCountdown]),
92
+ }, [clearCountdownTimer, setCountdown]),
70
93
  countdownText: countdown ? "(".concat(countdown, " s)") : ''
71
94
  };
72
95
  };
@@ -60,9 +60,12 @@ var _default = function _default(_ref) {
60
60
  break;
61
61
  }
62
62
 
63
- var firstStr = str.substr(0, newbeginLen);
64
- var lastStr = str.substr(-newendLen);
65
- var middleStr = '*'.repeat(newendLen - newbeginLen + 1);
63
+ var firstStr = str.slice(0, newbeginLen);
64
+ var lastStr = str.slice(newendLen);
65
+ var middleStr = '*'.repeat(newendLen - newbeginLen);
66
+ console.log('firstStr', firstStr);
67
+ console.log('middleStr', middleStr);
68
+ console.log('lastStr', lastStr);
66
69
  var tempStr = firstStr + middleStr + lastStr;
67
70
  return tempStr;
68
71
  };
@@ -0,0 +1,6 @@
1
+ declare const _default: (text: string) => string;
2
+ /**
3
+ * formatSpace4
4
+ * 每隔4位加空格,格式化银行卡.
5
+ */
6
+ export default _default;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var formatDigitPattern = function formatDigitPattern(_ref) {
9
+ var text = _ref.text,
10
+ _ref$digit = _ref.digit,
11
+ digit = _ref$digit === void 0 ? 4 : _ref$digit,
12
+ _ref$pattern = _ref.pattern,
13
+ pattern = _ref$pattern === void 0 ? ' ' : _ref$pattern;
14
+ var num = text.length / digit;
15
+
16
+ if (String(num).indexOf('.') > -1) {
17
+ num = parseInt(num.toFixed(0)) + 1;
18
+ }
19
+
20
+ var srt = [];
21
+
22
+ for (var i = 0; i < num; i++) {
23
+ srt.push("".concat(text.substring(i * digit, i * digit + digit)));
24
+ } //去掉最后一个空格
25
+
26
+
27
+ var _text = srt.join("".concat(pattern));
28
+
29
+ if (_text.endsWith(pattern)) {
30
+ return _text.substring(0, _text.length - 1);
31
+ }
32
+
33
+ return _text;
34
+ };
35
+ /**
36
+ * formatSpace4
37
+ * 每隔4位加空格,格式化银行卡.
38
+ */
39
+
40
+
41
+ var _default = function _default(text) {
42
+ return formatDigitPattern({
43
+ text: text
44
+ });
45
+ };
46
+
47
+ exports.default = _default;
@@ -2,5 +2,7 @@ export { default as desenStr } from './desenStr';
2
2
  export { default as getIDInfo } from './getIDInfo';
3
3
  export { default as decrypt } from './decrypt';
4
4
  export { default as encrypt } from './encrypt';
5
+ export { default as formatSpace4 } from './formatSpace4';
5
6
  export { default as isWx } from './isWx';
6
7
  export { default as selectFiles } from './selectFiles';
8
+ export { default as replaceRange } from './replaceRange';
@@ -29,6 +29,12 @@ Object.defineProperty(exports, "encrypt", {
29
29
  return _encrypt.default;
30
30
  }
31
31
  });
32
+ Object.defineProperty(exports, "formatSpace4", {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _formatSpace.default;
36
+ }
37
+ });
32
38
  Object.defineProperty(exports, "isWx", {
33
39
  enumerable: true,
34
40
  get: function get() {
@@ -41,6 +47,12 @@ Object.defineProperty(exports, "selectFiles", {
41
47
  return _selectFiles.default;
42
48
  }
43
49
  });
50
+ Object.defineProperty(exports, "replaceRange", {
51
+ enumerable: true,
52
+ get: function get() {
53
+ return _replaceRange.default;
54
+ }
55
+ });
44
56
 
45
57
  var _desenStr = _interopRequireDefault(require("./desenStr"));
46
58
 
@@ -50,6 +62,10 @@ var _decrypt = _interopRequireDefault(require("./decrypt"));
50
62
 
51
63
  var _encrypt = _interopRequireDefault(require("./encrypt"));
52
64
 
65
+ var _formatSpace = _interopRequireDefault(require("./formatSpace4"));
66
+
53
67
  var _isWx = _interopRequireDefault(require("./isWx"));
54
68
 
55
- var _selectFiles = _interopRequireDefault(require("./selectFiles"));
69
+ var _selectFiles = _interopRequireDefault(require("./selectFiles"));
70
+
71
+ var _replaceRange = _interopRequireDefault(require("./replaceRange"));
@@ -0,0 +1,11 @@
1
+ declare const _default: ({ text, start, end, replacement }: {
2
+ text: string;
3
+ start?: number;
4
+ end?: number;
5
+ replacement?: string;
6
+ }) => string;
7
+ /**
8
+ * replaceRange
9
+ * 常用于手机号码或姓名加密处理.
10
+ */
11
+ export default _default;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ /**
9
+ * replaceRange
10
+ * 常用于手机号码或姓名加密处理.
11
+ */
12
+ var _default = function _default(_ref) {
13
+ var text = _ref.text,
14
+ _ref$start = _ref.start,
15
+ start = _ref$start === void 0 ? 3 : _ref$start,
16
+ _ref$end = _ref.end,
17
+ end = _ref$end === void 0 ? 7 : _ref$end,
18
+ _ref$replacement = _ref.replacement,
19
+ replacement = _ref$replacement === void 0 ? '****' : _ref$replacement;
20
+ var startStr = text.substring(0, start);
21
+ var endStr = text.substring(end, text.length);
22
+ return "".concat(startStr).concat(replacement).concat(endStr);
23
+ };
24
+
25
+ exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parsec-hooks",
3
- "version": "1.0.15",
3
+ "version": "1.0.18",
4
4
  "description": "秒差距前端常用的hooks工具",
5
5
  "author": "mushan0x0",
6
6
  "license": "MIT",