📄 useMousePressed¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 3 |
| 📦 Imports | 9 |
| 🟢 Vue Composition API | 1 |
| 📐 Interfaces | 2 |
| 📑 Type Aliases | 1 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/core/useMousePressed/index.ts
📦 Imports¶
| Name | Source |
|---|---|
ShallowRef |
vue |
ConfigurableWindow |
../_configurable |
MaybeComputedElementRef |
../unrefElement |
UseMouseSourceType |
../useMouse |
computed |
vue |
shallowRef |
vue |
defaultWindow |
../_configurable |
unrefElement |
../unrefElement |
useEventListener |
../useEventListener |
Vue Composition API¶
| Name | Type | Reactive Variables | Composables |
|---|---|---|---|
computed |
computed | none | none |
Functions¶
useMousePressed(options: UseMousePressedOptions): UseMousePressedReturn¶
Reactive mouse pressing state.
Parameters:
optionsany: No description
See: https://vueuse.org/useMousePressed
Raw JSDoc
Calls:
shallowRef (from vue)options.onPressedoptions.onReleasedcomputed (from vue)unrefElement (from ../unrefElement)useEventListener (from ../useEventListener)onPressed
Code
export function useMousePressed(options: UseMousePressedOptions = {}): UseMousePressedReturn {
const {
touch = true,
drag = true,
capture = false,
initialValue = false,
window = defaultWindow,
} = options
const pressed = shallowRef(initialValue)
const sourceType = shallowRef<UseMouseSourceType>(null)
if (!window) {
return {
pressed,
sourceType,
}
}
const onPressed = (srcType: UseMouseSourceType) => (event: MouseEvent | TouchEvent | DragEvent) => {
pressed.value = true
sourceType.value = srcType
options.onPressed?.(event)
}
const onReleased = (event: MouseEvent | TouchEvent | DragEvent) => {
pressed.value = false
sourceType.value = null
options.onReleased?.(event)
}
const target = computed(() => unrefElement(options.target) || window)
const listenerOptions = { passive: true, capture }
useEventListener<MouseEvent>(target, 'mousedown', onPressed('mouse'), listenerOptions)
useEventListener<MouseEvent>(window, 'mouseleave', onReleased, listenerOptions)
useEventListener<MouseEvent>(window, 'mouseup', onReleased, listenerOptions)
if (drag) {
useEventListener<DragEvent>(target, 'dragstart', onPressed('mouse'), listenerOptions)
useEventListener<DragEvent>(window, 'drop', onReleased, listenerOptions)
useEventListener<DragEvent>(window, 'dragend', onReleased, listenerOptions)
}
if (touch) {
useEventListener<TouchEvent>(target, 'touchstart', onPressed('touch'), listenerOptions)
useEventListener<TouchEvent>(window, 'touchend', onReleased, listenerOptions)
useEventListener<TouchEvent>(window, 'touchcancel', onReleased, listenerOptions)
}
return {
pressed,
sourceType,
}
}
Internal helpers¶
Declared inside another function in this file.
onPressed(srcType: UseMouseSourceType): (event: MouseEvent | TouchEvent | DragEvent) => void¶
Parameters:
srcTypeUseMouseSourceType
Returns: (event: MouseEvent | TouchEvent | DragEvent) => void
Code
onReleased(event: MouseEvent | TouchEvent | DragEvent): void¶
Parameters:
eventMouseEvent | TouchEvent | DragEvent
Returns: void
Calls:
options.onReleased
Code
Interfaces¶
UseMousePressedOptions¶
Interface Code
export interface UseMousePressedOptions extends ConfigurableWindow {
/**
* Listen to `touchstart` `touchend` events
*
* @default true
*/
touch?: boolean
/**
* Listen to `dragstart` `drop` and `dragend` events
*
* @default true
*/
drag?: boolean
/**
* Add event listeners with the `capture` option set to `true`
* (see [MDN](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#capture))
*
* @default false
*/
capture?: boolean
/**
* Initial values
*
* @default false
*/
initialValue?: boolean
/**
* Element target to be capture the click
*/
target?: MaybeComputedElementRef
/**
* Callback to be called when the mouse is pressed
*
* @param event
*/
onPressed?: (event: MouseEvent | TouchEvent | DragEvent) => void
/**
* Callback to be called when the mouse is released
*
* @param event
*/
onReleased?: (event: MouseEvent | TouchEvent | DragEvent) => void
}
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
touch |
boolean |
✓ | not shown |
drag |
boolean |
✓ | not shown |
capture |
boolean |
✓ | not shown |
initialValue |
boolean |
✓ | not shown |
target |
MaybeComputedElementRef |
✓ | not shown |
onPressed |
(event: MouseEvent \| TouchEvent \| DragEvent) => void |
✓ | not shown |
onReleased |
(event: MouseEvent \| TouchEvent \| DragEvent) => void |
✓ | not shown |
UseMousePressedReturn¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
pressed |
ShallowRef<boolean> |
✗ | not shown |
sourceType |
ShallowRef<UseMouseSourceType> |
✗ | not shown |
Type Aliases¶
MousePressedOptions¶
/* @deprecated use {@link UseMousePressedOptions} instead /
Generated by Syntax Scribe