useMousePressed
React Sensor Hook that tracks mouse pressing state.
Triggered by mousedown touchstart on target element and released by mouseup mouseleave touchend touchcancel on window.
Usage
import { useMousePressed } from "@reactuses/core";
const Demo = () => {
const [mouse, type] = useMousePressed();
return (
<div>
<p>Pressed: {JSON.stringify(mouse)}</p>
<p>SourceType: {type}</p>
</div>
);
};
Example
Pressed: false
SourceType: null
Type Declarations
export interface MousePressedOptions {
/**
* Listen to `touchstart` `touchend` events
*
* @default true
*/
touch?: boolean
/**
* Listen to `dragstart` `drop` and `dragend` events
*
* @default true
*/
drag?: boolean
/**
* Initial values
*
* @default false
*/
initialValue?: IHookStateInitAction<boolean>
}
export type MouseSourceType = "mouse" | "touch" | null
export default function useMousePressed(
target?: BasicTarget,
options?: MousePressedOptions
): readonly [boolean, MouseSourceType]