Socket
Socket
Sign inDemoInstall

@tpguy825/clicker

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tpguy825/clicker - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

.gitattributes

72

dist/index.js

@@ -1,71 +0,1 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useLongHover = exports.useLongPress = void 0;
var react_1 = require("react");
/**
* @template Element Used to specify what type of element the event listeners will be attached to.
*/
function useLongPress(onLongPress, onClick, _a) {
var _b = _a === void 0 ? {} : _a, _c = _b.shouldPreventDefault, shouldPreventDefault = _c === void 0 ? true : _c, _d = _b.delay, delay = _d === void 0 ? 1000 : _d;
var _e = (0, react_1.useState)(false), longPressTriggered = _e[0], setLongPressTriggered = _e[1];
var timeout = (0, react_1.useRef)();
var target = (0, react_1.useRef)();
var start = (0, react_1.useCallback)(function (event) {
if (shouldPreventDefault && event.target) {
event.target.addEventListener("touchend", preventDefault, {
passive: false,
});
target.current = event.target;
}
timeout.current = setTimeout(function () {
onLongPress(event);
setLongPressTriggered(true);
}, delay);
}, [onLongPress, delay, shouldPreventDefault]);
var clear = (0, react_1.useCallback)(function (event, shouldTriggerClick) {
if (shouldTriggerClick === void 0) { shouldTriggerClick = true; }
if (timeout.current)
clearTimeout(timeout.current);
if (shouldTriggerClick && !longPressTriggered)
onClick(event);
setLongPressTriggered(false);
if (shouldPreventDefault && target.current) {
target.current.removeEventListener("touchend", preventDefault);
}
}, [shouldPreventDefault, onClick, longPressTriggered]);
var preventDefault = function (event) {
if (!("touches" in event) || event.touches === undefined)
return;
if (event.touches.length < 2 && event.preventDefault) {
event.preventDefault();
}
};
return {
onMouseDown: start,
onTouchStart: start,
onMouseUp: clear,
onMouseLeave: function (event) { return clear(event, false); },
onTouchEnd: clear,
};
}
exports.useLongPress = useLongPress;
/**
* @param {number} time The time in milliseconds that the user must hover for.
*/
function useLongHover(time) {
var _a = (0, react_1.useState)(false), isHoveredForTime = _a[0], setIsHoveredForTime = _a[1];
var _b = (0, react_1.useState)(null), timeout = _b[0], changeTimeout = _b[1];
var handlers = {
onMouseLeave: function () {
if (timeout) {
clearTimeout(timeout);
changeTimeout(null);
}
setIsHoveredForTime(false);
},
onMouseEnter: function () { return changeTimeout(setTimeout(function () { return setIsHoveredForTime(true); }, time)); },
};
return [isHoveredForTime, handlers];
}
exports.useLongHover = useLongHover;
//# sourceMappingURL=index.js.map
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.useLongHover=exports.useLongPress=void 0;var react_1=require("react");function useLongPress(onLongPress,onClick,_a){var _b=_a===void 0?{}:_a,_c=_b.shouldPreventDefault,shouldPreventDefault=_c===void 0?true:_c,_d=_b.delay,delay=_d===void 0?1e3:_d;var _e=(0,react_1.useState)(false),longPressTriggered=_e[0],setLongPressTriggered=_e[1];var timeout=(0,react_1.useRef)();var target=(0,react_1.useRef)();var start=(0,react_1.useCallback)(function(event){if(shouldPreventDefault&&event.target){event.target.addEventListener("touchend",preventDefault,{passive:false});target.current=event.target}timeout.current=setTimeout(function(){onLongPress(event);setLongPressTriggered(true)},delay)},[onLongPress,delay,shouldPreventDefault]);var clear=(0,react_1.useCallback)(function(event,shouldTriggerClick){if(shouldTriggerClick===void 0){shouldTriggerClick=true}if(timeout.current)clearTimeout(timeout.current);if(shouldTriggerClick&&!longPressTriggered)onClick(event);setLongPressTriggered(false);if(shouldPreventDefault&&target.current){target.current.removeEventListener("touchend",preventDefault)}},[shouldPreventDefault,onClick,longPressTriggered]);var preventDefault=function(event){if(!("touches"in event)||event.touches===undefined)return;if(event.touches.length<2&&event.preventDefault){event.preventDefault()}};return{onMouseDown:start,onTouchStart:start,onMouseUp:clear,onMouseLeave:function(event){return clear(event,false)},onTouchEnd:clear}}exports.useLongPress=useLongPress;function useLongHover(time){var _a=(0,react_1.useState)(false),isHoveredForTime=_a[0],setIsHoveredForTime=_a[1];var _b=(0,react_1.useState)(null),timeout=_b[0],changeTimeout=_b[1];var handlers={onMouseLeave:function(){if(timeout){clearTimeout(timeout);changeTimeout(null)}setIsHoveredForTime(false)},onMouseEnter:function(){return changeTimeout(setTimeout(function(){return setIsHoveredForTime(true)},time))}};return[isHoveredForTime,handlers]}exports.useLongHover=useLongHover;
{
"name": "@tpguy825/clicker",
"version": "1.0.1",
"version": "1.0.2",
"description": "Mouse event helper library for React",

@@ -15,4 +15,6 @@ "main": "dist/index.js",

},
"homepage": "https://github.com/tpguy825/clicker#readme"
"homepage": "https://github.com/tpguy825/clicker#readme",
"devDependencies": {
"typescript": "^5.0.4"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc