init
This commit is contained in:
3
dist/index.d.ts
vendored
3
dist/index.d.ts
vendored
@@ -1,2 +1 @@
|
||||
export { default as power } from "./sample";
|
||||
export { default as sqrt } from "./sample2";
|
||||
export { default as useCountdown } from './useCountdown';
|
||||
|
||||
8
dist/index.js
vendored
8
dist/index.js
vendored
@@ -3,8 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.sqrt = exports.power = void 0;
|
||||
var sample_1 = require("./sample");
|
||||
Object.defineProperty(exports, "power", { enumerable: true, get: function () { return __importDefault(sample_1).default; } });
|
||||
var sample2_1 = require("./sample2");
|
||||
Object.defineProperty(exports, "sqrt", { enumerable: true, get: function () { return __importDefault(sample2_1).default; } });
|
||||
exports.useCountdown = void 0;
|
||||
var useCountdown_1 = require("./useCountdown");
|
||||
Object.defineProperty(exports, "useCountdown", { enumerable: true, get: function () { return __importDefault(useCountdown_1).default; } });
|
||||
|
||||
2
dist/sample.d.ts
vendored
2
dist/sample.d.ts
vendored
@@ -1,2 +0,0 @@
|
||||
declare const power: (n?: number | undefined) => number | undefined;
|
||||
export default power;
|
||||
12
dist/sample.js
vendored
12
dist/sample.js
vendored
@@ -1,12 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var power = function (n) {
|
||||
if (typeof n === "undefined" || n === null) {
|
||||
return undefined;
|
||||
}
|
||||
if (typeof n !== "number") {
|
||||
return undefined;
|
||||
}
|
||||
return Math.pow(n, 2);
|
||||
};
|
||||
exports.default = power;
|
||||
2
dist/sample2.d.ts
vendored
2
dist/sample2.d.ts
vendored
@@ -1,2 +0,0 @@
|
||||
declare const sqrt: (n: number) => number | undefined;
|
||||
export default sqrt;
|
||||
12
dist/sample2.js
vendored
12
dist/sample2.js
vendored
@@ -1,12 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var sqrt = function (n) {
|
||||
if (typeof n === "undefined" || n === null) {
|
||||
return undefined;
|
||||
}
|
||||
if (typeof n !== "number") {
|
||||
return undefined;
|
||||
}
|
||||
return Math.sqrt(n);
|
||||
};
|
||||
exports.default = sqrt;
|
||||
12
dist/useCountdown.d.ts
vendored
Normal file
12
dist/useCountdown.d.ts
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
interface useCountdownOptions {
|
||||
now?: () => Date;
|
||||
onEnd?: () => void;
|
||||
onCount?: (timeLeft: number) => void;
|
||||
step?: number;
|
||||
}
|
||||
interface CountdownHookResult {
|
||||
timeleft: number;
|
||||
start: (timeLeft: number) => void;
|
||||
}
|
||||
declare function useCountdown(options?: useCountdownOptions): CountdownHookResult;
|
||||
export default useCountdown;
|
||||
54
dist/useCountdown.js
vendored
Normal file
54
dist/useCountdown.js
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
"use strict";
|
||||
var __assign = (this && this.__assign) || function () {
|
||||
__assign = Object.assign || function(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
||||
t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
return __assign.apply(this, arguments);
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var react_1 = __importDefault(require("react"));
|
||||
var DEFAULT_OPTIONS = {
|
||||
step: 1000
|
||||
};
|
||||
function useCountdown(options) {
|
||||
var _a = react_1.default.useState(), timeleft = _a[0], setTimeleft = _a[1];
|
||||
var _b = react_1.default.useState(), targetDatetime = _b[0], setTargetDatetime = _b[1];
|
||||
var _c = __assign(__assign({}, DEFAULT_OPTIONS), options), step = _c.step, onCount = _c.onCount, onEnd = _c.onEnd;
|
||||
var start = function (countAsM) {
|
||||
setTimeleft(countAsM);
|
||||
};
|
||||
var varTimeout = null;
|
||||
react_1.default.useEffect(function () {
|
||||
return function () { return clearTimeout(varTimeout); };
|
||||
}, []);
|
||||
react_1.default.useEffect(function () {
|
||||
if (timeleft === undefined) {
|
||||
return;
|
||||
}
|
||||
var newTimeleft = timeleft - step;
|
||||
if (newTimeleft < 0) {
|
||||
setTimeleft(0);
|
||||
onEnd === null || onEnd === void 0 ? void 0 : onEnd();
|
||||
}
|
||||
else {
|
||||
onCount === null || onCount === void 0 ? void 0 : onCount(timeleft);
|
||||
varTimeout = setTimeout(function () {
|
||||
setTimeleft(newTimeleft);
|
||||
}, step);
|
||||
}
|
||||
}, [timeleft]);
|
||||
var result = {
|
||||
timeleft: timeleft || 0,
|
||||
start: start
|
||||
};
|
||||
return result;
|
||||
}
|
||||
exports.default = useCountdown;
|
||||
Reference in New Issue
Block a user