Skip to content

Commit e6b40c2

Browse files
committed
v1.3.0
1 parent cc266a5 commit e6b40c2

16 files changed

+1423
-1884
lines changed

.babelrc

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
2-
"presets": [
3-
[
4-
"@babel/preset-env",
5-
{
2+
"presets": [
3+
[
4+
"@babel/preset-env",
5+
{
66
"modules": "commonjs"
7-
}
8-
],
9-
"@babel/preset-react",
10-
"@babel/typescript"
11-
],
12-
"sourceMaps": "inline"
7+
}
8+
],
9+
"@babel/preset-react",
10+
"@babel/typescript"
11+
],
12+
"sourceMaps": false
1313
}

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,18 @@ export const MyFunctionalComponent = (props) => {
136136
};
137137
```
138138

139+
After v1.3.0
140+
141+
use version of your desire
142+
143+
index.js - commonjs
144+
145+
\*.cjs - commonjs
146+
147+
\*.esm.js - es module
148+
149+
\*.min.\* minified version
150+
139151
## License
140152

141153
MIT

dist/LICENSE.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

dist/README.md

Lines changed: 0 additions & 113 deletions
This file was deleted.

dist/index.cjs.js

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
'use strict';
2+
3+
var react = require('react');
4+
5+
var useHoverIntent = function (options) {
6+
var _a = options !== null && options !== void 0 ? options : {}, ref = _a.ref, _b = _a.sensitivity, sensitivity = _b === void 0 ? 6 : _b, _c = _a.interval, interval = _c === void 0 ? 100 : _c, _d = _a.timeout, timeout = _d === void 0 ? 0 : _d;
7+
var intentRef = react.useRef(null);
8+
var _e = react.useState(false), isHovering = _e[0], setIsHovering = _e[1];
9+
var x = 0, y = 0, pX = 0, pY = 0, timer = 0;
10+
var delay = function (e) {
11+
if (timer) {
12+
clearTimeout(timer);
13+
}
14+
return setIsHovering(false);
15+
};
16+
var tracker = function (e) {
17+
x = e.clientX;
18+
y = e.clientY;
19+
};
20+
var compare = function (e) {
21+
if (timer) {
22+
clearTimeout(timer);
23+
}
24+
if (Math.abs(pX - x) + Math.abs(pY - y) < sensitivity) {
25+
return setIsHovering(true);
26+
}
27+
else {
28+
pX = x;
29+
pY = y;
30+
timer = window.setTimeout(function () { return compare(); }, interval);
31+
}
32+
};
33+
var dispatchOver = function (e) {
34+
if (timer) {
35+
clearTimeout(timer);
36+
}
37+
if (intentRef.current) {
38+
intentRef.current.removeEventListener("mousemove", tracker, false);
39+
}
40+
if (!isHovering) {
41+
pX = e.clientX;
42+
pY = e.clientY;
43+
if (intentRef.current) {
44+
intentRef.current.addEventListener("mousemove", tracker, false);
45+
}
46+
timer = window.setTimeout(function () { return compare(); }, interval);
47+
}
48+
};
49+
var dispatchOut = function (e) {
50+
if (timer) {
51+
clearTimeout(timer);
52+
}
53+
if (intentRef.current) {
54+
intentRef.current.removeEventListener("mousemove", tracker, false);
55+
}
56+
if (isHovering) {
57+
timer = window.setTimeout(function () { return delay(); }, timeout);
58+
}
59+
};
60+
react.useEffect(function () {
61+
var currentRef = intentRef.current;
62+
if (currentRef) {
63+
currentRef.addEventListener("mouseover", dispatchOver, false);
64+
currentRef.addEventListener("mouseout", dispatchOut, false);
65+
}
66+
return function () {
67+
if (timer) {
68+
clearTimeout(timer);
69+
}
70+
if (currentRef) {
71+
currentRef.removeEventListener("mouseover", dispatchOver, false);
72+
currentRef.removeEventListener("mouseout", dispatchOut, false);
73+
}
74+
};
75+
});
76+
react.useImperativeHandle(ref, function () { return intentRef.current; }, [intentRef]);
77+
return [isHovering, intentRef, setIsHovering];
78+
};
79+
80+
exports.useHoverIntent = useHoverIntent;

dist/index.cjs.min.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.d.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
import { Dispatch, SetStateAction } from "react";
1+
import * as react from 'react';
2+
import { Dispatch, SetStateAction } from 'react';
3+
24
interface optionType {
35
ref?: React.Ref<HTMLElement | null>;
46
sensitivity?: number;
57
interval?: number;
68
timeout?: number;
79
}
8-
export declare const useHoverIntent: <T>(options?: optionType) => [boolean, import("react").RefObject<HTMLElement & T>, Dispatch<SetStateAction<boolean>>];
9-
export {};
10+
declare const useHoverIntent: <T>(options?: optionType) => [boolean, react.RefObject<HTMLElement & T>, Dispatch<SetStateAction<boolean>>];
11+
12+
export { useHoverIntent };

dist/index.esm.js

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import { useRef, useState, useEffect, useImperativeHandle } from 'react';
2+
3+
var useHoverIntent = function (options) {
4+
var _a = options !== null && options !== void 0 ? options : {}, ref = _a.ref, _b = _a.sensitivity, sensitivity = _b === void 0 ? 6 : _b, _c = _a.interval, interval = _c === void 0 ? 100 : _c, _d = _a.timeout, timeout = _d === void 0 ? 0 : _d;
5+
var intentRef = useRef(null);
6+
var _e = useState(false), isHovering = _e[0], setIsHovering = _e[1];
7+
var x = 0, y = 0, pX = 0, pY = 0, timer = 0;
8+
var delay = function (e) {
9+
if (timer) {
10+
clearTimeout(timer);
11+
}
12+
return setIsHovering(false);
13+
};
14+
var tracker = function (e) {
15+
x = e.clientX;
16+
y = e.clientY;
17+
};
18+
var compare = function (e) {
19+
if (timer) {
20+
clearTimeout(timer);
21+
}
22+
if (Math.abs(pX - x) + Math.abs(pY - y) < sensitivity) {
23+
return setIsHovering(true);
24+
}
25+
else {
26+
pX = x;
27+
pY = y;
28+
timer = window.setTimeout(function () { return compare(); }, interval);
29+
}
30+
};
31+
var dispatchOver = function (e) {
32+
if (timer) {
33+
clearTimeout(timer);
34+
}
35+
if (intentRef.current) {
36+
intentRef.current.removeEventListener("mousemove", tracker, false);
37+
}
38+
if (!isHovering) {
39+
pX = e.clientX;
40+
pY = e.clientY;
41+
if (intentRef.current) {
42+
intentRef.current.addEventListener("mousemove", tracker, false);
43+
}
44+
timer = window.setTimeout(function () { return compare(); }, interval);
45+
}
46+
};
47+
var dispatchOut = function (e) {
48+
if (timer) {
49+
clearTimeout(timer);
50+
}
51+
if (intentRef.current) {
52+
intentRef.current.removeEventListener("mousemove", tracker, false);
53+
}
54+
if (isHovering) {
55+
timer = window.setTimeout(function () { return delay(); }, timeout);
56+
}
57+
};
58+
useEffect(function () {
59+
var currentRef = intentRef.current;
60+
if (currentRef) {
61+
currentRef.addEventListener("mouseover", dispatchOver, false);
62+
currentRef.addEventListener("mouseout", dispatchOut, false);
63+
}
64+
return function () {
65+
if (timer) {
66+
clearTimeout(timer);
67+
}
68+
if (currentRef) {
69+
currentRef.removeEventListener("mouseover", dispatchOver, false);
70+
currentRef.removeEventListener("mouseout", dispatchOut, false);
71+
}
72+
};
73+
});
74+
useImperativeHandle(ref, function () { return intentRef.current; }, [intentRef]);
75+
return [isHovering, intentRef, setIsHovering];
76+
};
77+
78+
export { useHoverIntent };

dist/index.esm.min.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)