@folklore/hooks 0.0.26 → 0.0.27
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/dist/cjs.js +57 -2
- package/dist/es.js +56 -3
- package/package.json +4 -3
package/dist/cjs.js
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
5
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
6
|
+
var raf = require('raf');
|
|
7
7
|
var react = require('react');
|
|
8
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
8
9
|
var services = require('@folklore/services');
|
|
9
10
|
var createDebug = require('debug');
|
|
10
11
|
var EventsManager = require('@folklore/events');
|
|
@@ -12,12 +13,65 @@ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
|
12
13
|
|
|
13
14
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
15
|
|
|
15
|
-
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
16
16
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
17
|
+
var raf__default = /*#__PURE__*/_interopDefaultLegacy(raf);
|
|
18
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
17
19
|
var createDebug__default = /*#__PURE__*/_interopDefaultLegacy(createDebug);
|
|
18
20
|
var EventsManager__default = /*#__PURE__*/_interopDefaultLegacy(EventsManager);
|
|
19
21
|
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
20
22
|
|
|
23
|
+
function useCounter(desiredValue, _ref) {
|
|
24
|
+
var _ref$maxDuration = _ref.maxDuration,
|
|
25
|
+
maxDuration = _ref$maxDuration === void 0 ? 2000 : _ref$maxDuration,
|
|
26
|
+
_ref$speed = _ref.speed,
|
|
27
|
+
speed = _ref$speed === void 0 ? 1 / 10 : _ref$speed;
|
|
28
|
+
|
|
29
|
+
var _useState = react.useState(desiredValue),
|
|
30
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
31
|
+
currentValue = _useState2[0],
|
|
32
|
+
setCurrentValue = _useState2[1];
|
|
33
|
+
|
|
34
|
+
react.useEffect(function () {
|
|
35
|
+
var animationFrame = null;
|
|
36
|
+
var startTime = null;
|
|
37
|
+
var duration = 0;
|
|
38
|
+
var canceled = false;
|
|
39
|
+
var startValue = currentValue;
|
|
40
|
+
var delta = desiredValue - startValue;
|
|
41
|
+
|
|
42
|
+
function loop() {
|
|
43
|
+
if (canceled) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
var currentTime = Date.now();
|
|
48
|
+
var elapsedTime = currentTime - startTime;
|
|
49
|
+
var progress = Math.min(elapsedTime / duration, 1);
|
|
50
|
+
var newValue = Math.round(startValue + progress * delta);
|
|
51
|
+
setCurrentValue(newValue);
|
|
52
|
+
|
|
53
|
+
if (newValue !== desiredValue) {
|
|
54
|
+
animationFrame = raf__default["default"](loop);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (delta !== 0) {
|
|
59
|
+
duration = Math.min(maxDuration, Math.abs(delta) * speed * 1000);
|
|
60
|
+
startTime = Date.now();
|
|
61
|
+
animationFrame = raf__default["default"](loop);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return function () {
|
|
65
|
+
canceled = true;
|
|
66
|
+
|
|
67
|
+
if (animationFrame !== null) {
|
|
68
|
+
raf__default["default"].cancel(animationFrame);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}, [desiredValue]);
|
|
72
|
+
return currentValue;
|
|
73
|
+
}
|
|
74
|
+
|
|
21
75
|
function usePlayerCurrentTime(player) {
|
|
22
76
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
23
77
|
_ref$id = _ref.id,
|
|
@@ -1734,6 +1788,7 @@ function useWindowSize() {
|
|
|
1734
1788
|
|
|
1735
1789
|
exports.documentEventsManager = eventsManager$1;
|
|
1736
1790
|
exports.getObserver = getObserver;
|
|
1791
|
+
exports.useCounter = useCounter;
|
|
1737
1792
|
exports.useDailymotionPlayer = useDailymotionPlayer;
|
|
1738
1793
|
exports.useDocumentEvent = useDocumentEvent;
|
|
1739
1794
|
exports.useIntersectionObserver = useIntersectionObserver;
|
package/dist/es.js
CHANGED
|
@@ -1,11 +1,64 @@
|
|
|
1
|
-
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
1
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
-
import
|
|
2
|
+
import raf from 'raf';
|
|
3
|
+
import { useState, useEffect, useRef, useMemo, useCallback } from 'react';
|
|
4
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
5
|
import { loadDailymotion, loadYouTube, loadVimeo } from '@folklore/services';
|
|
5
6
|
import createDebug from 'debug';
|
|
6
7
|
import EventsManager from '@folklore/events';
|
|
7
8
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
8
9
|
|
|
10
|
+
function useCounter(desiredValue, _ref) {
|
|
11
|
+
var _ref$maxDuration = _ref.maxDuration,
|
|
12
|
+
maxDuration = _ref$maxDuration === void 0 ? 2000 : _ref$maxDuration,
|
|
13
|
+
_ref$speed = _ref.speed,
|
|
14
|
+
speed = _ref$speed === void 0 ? 1 / 10 : _ref$speed;
|
|
15
|
+
|
|
16
|
+
var _useState = useState(desiredValue),
|
|
17
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
18
|
+
currentValue = _useState2[0],
|
|
19
|
+
setCurrentValue = _useState2[1];
|
|
20
|
+
|
|
21
|
+
useEffect(function () {
|
|
22
|
+
var animationFrame = null;
|
|
23
|
+
var startTime = null;
|
|
24
|
+
var duration = 0;
|
|
25
|
+
var canceled = false;
|
|
26
|
+
var startValue = currentValue;
|
|
27
|
+
var delta = desiredValue - startValue;
|
|
28
|
+
|
|
29
|
+
function loop() {
|
|
30
|
+
if (canceled) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
var currentTime = Date.now();
|
|
35
|
+
var elapsedTime = currentTime - startTime;
|
|
36
|
+
var progress = Math.min(elapsedTime / duration, 1);
|
|
37
|
+
var newValue = Math.round(startValue + progress * delta);
|
|
38
|
+
setCurrentValue(newValue);
|
|
39
|
+
|
|
40
|
+
if (newValue !== desiredValue) {
|
|
41
|
+
animationFrame = raf(loop);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (delta !== 0) {
|
|
46
|
+
duration = Math.min(maxDuration, Math.abs(delta) * speed * 1000);
|
|
47
|
+
startTime = Date.now();
|
|
48
|
+
animationFrame = raf(loop);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return function () {
|
|
52
|
+
canceled = true;
|
|
53
|
+
|
|
54
|
+
if (animationFrame !== null) {
|
|
55
|
+
raf.cancel(animationFrame);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}, [desiredValue]);
|
|
59
|
+
return currentValue;
|
|
60
|
+
}
|
|
61
|
+
|
|
9
62
|
function usePlayerCurrentTime(player) {
|
|
10
63
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
11
64
|
_ref$id = _ref.id,
|
|
@@ -1720,4 +1773,4 @@ function useWindowSize() {
|
|
|
1720
1773
|
return size;
|
|
1721
1774
|
}
|
|
1722
1775
|
|
|
1723
|
-
export { eventsManager$1 as documentEventsManager, getObserver, useDailymotionPlayer, useDocumentEvent, useIntersectionObserver, useKeyboard, useNativeVideoPlayer, useObserver, usePlayerCurrentTime, useResizeObserver, useVideoPlayer, useVimeoPlayer, useWindowEvent, useWindowScroll, useWindowSize, useYouTubePlayer, eventsManager as windowEventsManager };
|
|
1776
|
+
export { eventsManager$1 as documentEventsManager, getObserver, useCounter, useDailymotionPlayer, useDocumentEvent, useIntersectionObserver, useKeyboard, useNativeVideoPlayer, useObserver, usePlayerCurrentTime, useResizeObserver, useVideoPlayer, useVimeoPlayer, useWindowEvent, useWindowScroll, useWindowSize, useYouTubePlayer, eventsManager as windowEventsManager };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@folklore/hooks",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.27",
|
|
4
4
|
"description": "React hooks",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript",
|
|
@@ -48,10 +48,11 @@
|
|
|
48
48
|
"publishConfig": {
|
|
49
49
|
"access": "public"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "47c23ae7e56301105e97a73f5d0f9d94373966b3",
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@folklore/events": "^0.0.3",
|
|
54
54
|
"@folklore/services": "^0.1.36",
|
|
55
|
-
"debug": "^4.3.4"
|
|
55
|
+
"debug": "^4.3.4",
|
|
56
|
+
"raf": "^3.4.1"
|
|
56
57
|
}
|
|
57
58
|
}
|