UNPKG

react-aria

Version:
1 lines • 58.6 kB
{"mappings":"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","sources":["packages/react-aria/src/interactions/usePress.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {chain} from '../utils/chain';\n\nimport {createSyntheticEvent, preventFocus, setEventTarget} from './utils';\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {\n DOMAttributes,\n FocusableElement,\n PressEvent as IPressEvent,\n PointerType,\n PressEvents,\n RefObject\n} from '@react-types/shared';\nimport {flushSync} from 'react-dom';\nimport {focusWithoutScrolling} from '../utils/focusWithoutScrolling';\nimport {getEventTarget, nodeContains} from '../utils/shadowdom/DOMFunctions';\nimport {getNonce} from '../utils/getNonce';\nimport {getOwnerDocument, getOwnerWindow} from '../utils/domHelpers';\nimport {isMac} from '../utils/platform';\nimport {isVirtualClick, isVirtualPointerEvent} from '../utils/isVirtualEvent';\nimport {mergeProps} from '../utils/mergeProps';\nimport {openLink} from '../utils/openLink';\nimport {PressResponderContext} from './context';\nimport {\n MouseEvent as RMouseEvent,\n TouchEvent as RTouchEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport {useEffectEvent} from '../utils/useEffectEvent';\nimport {useGlobalListeners} from '../utils/useGlobalListeners';\nimport {useSyncRef} from '../utils/useSyncRef';\n\nexport interface PressProps extends PressEvents {\n /** Whether the target is in a controlled press state (e.g. an overlay it triggers is open). */\n isPressed?: boolean;\n /** Whether the press events should be disabled. */\n isDisabled?: boolean;\n /** Whether the target should not receive focus on press. */\n preventFocusOnPress?: boolean;\n /**\n * Whether press events should be canceled when the pointer leaves the target while pressed.\n * By default, this is `false`, which means if the pointer returns back over the target while\n * still pressed, onPressStart will be fired again. If set to `true`, the press is canceled\n * when the pointer leaves the target and onPressStart will not be fired if the pointer returns.\n */\n shouldCancelOnPointerExit?: boolean;\n /** Whether text selection should be enabled on the pressable element. */\n allowTextSelectionOnPress?: boolean;\n}\n\nexport interface PressHookProps extends PressProps {\n /** A ref to the target element. */\n ref?: RefObject<Element | null>;\n}\n\ninterface PressState {\n isPressed: boolean;\n ignoreEmulatedMouseEvents: boolean;\n didFirePressStart: boolean;\n isTriggeringEvent: boolean;\n activePointerId: any;\n target: FocusableElement | null;\n isOverTarget: boolean;\n pointerType: PointerType | null;\n userSelect?: string;\n metaKeyEvents?: Map<string, globalThis.KeyboardEvent>;\n disposables: Array<() => void>;\n}\n\ninterface EventBase {\n currentTarget: EventTarget | null;\n shiftKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n altKey: boolean;\n clientX?: number;\n clientY?: number;\n targetTouches?: Array<{clientX?: number; clientY?: number}>;\n key?: string;\n}\n\nexport interface PressResult {\n /** Whether the target is currently pressed. */\n isPressed: boolean;\n /** Props to spread on the target element. */\n pressProps: DOMAttributes;\n}\n\nfunction usePressResponderContext(props: PressHookProps): PressHookProps {\n // Consume context from <PressResponder> and merge with props.\n let context = useContext(PressResponderContext);\n if (context) {\n // Prevent mergeProps from merging ref.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {register, ref, ...contextProps} = context;\n props = mergeProps(contextProps, props) as PressHookProps;\n register();\n }\n useSyncRef(context, props.ref);\n\n return props;\n}\n\nclass PressEvent implements IPressEvent {\n type: IPressEvent['type'];\n pointerType: PointerType;\n target: Element;\n shiftKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n altKey: boolean;\n x: number;\n y: number;\n key: string | undefined;\n #shouldStopPropagation = true;\n\n constructor(\n type: IPressEvent['type'],\n pointerType: PointerType,\n originalEvent: EventBase,\n state?: PressState\n ) {\n let currentTarget = state?.target ?? originalEvent.currentTarget;\n const rect: DOMRect | undefined = (currentTarget as Element)?.getBoundingClientRect();\n let x,\n y = 0;\n let clientX,\n clientY: number | null = null;\n if (originalEvent.clientX != null && originalEvent.clientY != null) {\n clientX = originalEvent.clientX;\n clientY = originalEvent.clientY;\n }\n if (rect) {\n if (clientX != null && clientY != null) {\n x = clientX - rect.left;\n y = clientY - rect.top;\n } else {\n x = rect.width / 2;\n y = rect.height / 2;\n }\n }\n this.type = type;\n this.pointerType = pointerType;\n this.target = originalEvent.currentTarget as Element;\n this.shiftKey = originalEvent.shiftKey;\n this.metaKey = originalEvent.metaKey;\n this.ctrlKey = originalEvent.ctrlKey;\n this.altKey = originalEvent.altKey;\n this.x = x;\n this.y = y;\n this.key = originalEvent.key;\n }\n\n continuePropagation() {\n this.#shouldStopPropagation = false;\n }\n\n get shouldStopPropagation() {\n return this.#shouldStopPropagation;\n }\n}\n\nconst LINK_CLICKED = Symbol('linkClicked');\nconst STYLE_ID = 'react-aria-pressable-style';\nconst PRESSABLE_ATTRIBUTE = 'data-react-aria-pressable';\n\n/**\n * Handles press interactions across mouse, touch, keyboard, and screen readers.\n * It normalizes behavior across browsers and platforms, and handles many nuances\n * of dealing with pointer and keyboard events.\n */\nexport function usePress(props: PressHookProps): PressResult {\n let {\n onPress,\n onPressChange,\n onPressStart,\n onPressEnd,\n onPressUp,\n onClick,\n isDisabled,\n isPressed: isPressedProp,\n preventFocusOnPress,\n shouldCancelOnPointerExit,\n allowTextSelectionOnPress,\n ref: domRef,\n ...domProps\n } = usePressResponderContext(props);\n\n let [isPressed, setPressed] = useState(false);\n let ref = useRef<PressState>({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n didFirePressStart: false,\n isTriggeringEvent: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null,\n disposables: []\n });\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let triggerPressStart = useCallback(\n (originalEvent: EventBase, pointerType: PointerType) => {\n let state = ref.current;\n if (isDisabled || state.didFirePressStart) {\n return false;\n }\n\n let shouldStopPropagation = true;\n state.isTriggeringEvent = true;\n if (onPressStart) {\n let event = new PressEvent('pressstart', pointerType, originalEvent);\n onPressStart(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n\n if (onPressChange) {\n onPressChange(true);\n }\n\n state.isTriggeringEvent = false;\n state.didFirePressStart = true;\n setPressed(true);\n return shouldStopPropagation;\n },\n [isDisabled, onPressStart, onPressChange]\n );\n\n let triggerPressEnd = useCallback(\n (originalEvent: EventBase, pointerType: PointerType, wasPressed = true) => {\n let state = ref.current;\n if (!state.didFirePressStart) {\n return false;\n }\n\n state.didFirePressStart = false;\n state.isTriggeringEvent = true;\n\n let shouldStopPropagation = true;\n if (onPressEnd) {\n let event = new PressEvent('pressend', pointerType, originalEvent);\n onPressEnd(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n\n if (onPressChange) {\n onPressChange(false);\n }\n\n setPressed(false);\n\n if (onPress && wasPressed && !isDisabled) {\n let event = new PressEvent('press', pointerType, originalEvent);\n onPress(event);\n shouldStopPropagation &&= event.shouldStopPropagation;\n }\n\n state.isTriggeringEvent = false;\n return shouldStopPropagation;\n },\n [isDisabled, onPressEnd, onPressChange, onPress]\n );\n let triggerPressEndEvent = useEffectEvent(triggerPressEnd);\n\n let triggerPressUp = useCallback(\n (originalEvent: EventBase, pointerType: PointerType) => {\n let state = ref.current;\n if (isDisabled) {\n return false;\n }\n\n if (onPressUp) {\n state.isTriggeringEvent = true;\n let event = new PressEvent('pressup', pointerType, originalEvent);\n onPressUp(event);\n state.isTriggeringEvent = false;\n return event.shouldStopPropagation;\n }\n\n return true;\n },\n [isDisabled, onPressUp]\n );\n let triggerPressUpEvent = useEffectEvent(triggerPressUp);\n\n let cancel = useCallback(\n (e: EventBase) => {\n let state = ref.current;\n if (state.isPressed && state.target) {\n if (state.didFirePressStart && state.pointerType != null) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n for (let dispose of state.disposables) {\n dispose();\n }\n state.disposables = [];\n }\n },\n [allowTextSelectionOnPress, removeAllGlobalListeners, triggerPressEnd]\n );\n let cancelEvent = useEffectEvent(cancel);\n\n useEffect(() => {\n if (isDisabled && ref.current.isPressed) {\n cancelEvent({\n currentTarget: ref.current.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n }\n }, [isDisabled]);\n\n let cancelOnPointerExit = useCallback(\n (e: EventBase) => {\n if (shouldCancelOnPointerExit) {\n cancel(e);\n }\n },\n [shouldCancelOnPointerExit, cancel]\n );\n\n let triggerClick = useCallback(\n (e: RMouseEvent<FocusableElement>) => {\n if (isDisabled) {\n return;\n }\n\n onClick?.(e);\n },\n [isDisabled, onClick]\n );\n\n let triggerSyntheticClick = useCallback(\n (e: KeyboardEvent | TouchEvent, target: FocusableElement) => {\n if (isDisabled) {\n return;\n }\n\n // Some third-party libraries pass in onClick instead of onPress.\n // Create a fake mouse event and trigger onClick as well.\n // This matches the browser's native activation behavior for certain elements (e.g. button).\n // https://html.spec.whatwg.org/#activation\n // https://html.spec.whatwg.org/#fire-a-synthetic-pointer-event\n if (onClick) {\n let event = new MouseEvent('click', e);\n setEventTarget(event, target);\n onClick(createSyntheticEvent(event));\n }\n },\n [isDisabled, onClick]\n );\n\n let pressProps = useMemo(() => {\n let state = ref.current;\n let pressProps: DOMAttributes = {\n onKeyDown(e) {\n if (\n isValidKeyboardEvent(e.nativeEvent, e.currentTarget as Element) &&\n nodeContains(e.currentTarget as Element, getEventTarget(e) as Element)\n ) {\n if (shouldPreventDefaultKeyboard(getEventTarget(e) as Element, e.key)) {\n e.preventDefault();\n }\n\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n let shouldStopPropagation = true;\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n state.pointerType = 'keyboard';\n shouldStopPropagation = triggerPressStart(e, 'keyboard');\n }\n\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred. Make it capturing so that it will trigger\n // before stopPropagation from useKeyboard on a child element may happen and thus we can still call triggerPress for the parent element.\n let originalTarget = e.currentTarget;\n let pressUp = e => {\n if (\n isValidKeyboardEvent(e, originalTarget) &&\n !e.repeat &&\n nodeContains(originalTarget, getEventTarget(e) as Element) &&\n state.target\n ) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n triggerPressUpEvent(createEvent(state.target, e), 'keyboard');\n }\n };\n\n addGlobalListener(\n getOwnerDocument(e.currentTarget),\n 'keyup',\n chain(pressUp, onKeyUp),\n true\n );\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n\n // Keep track of the keydown events that occur while the Meta (e.g. Command) key is held.\n // macOS has a bug where keyup events are not fired while the Meta key is down.\n // When the Meta key itself is released we will get an event for that, and we'll act as if\n // all of these other keys were released as well.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1393524\n // https://bugs.webkit.org/show_bug.cgi?id=55291\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1299553\n if (e.metaKey && isMac()) {\n state.metaKeyEvents?.set(e.key, e.nativeEvent);\n }\n } else if (e.key === 'Meta') {\n state.metaKeyEvents = new Map();\n }\n },\n onClick(e) {\n if (e && !nodeContains(e.currentTarget, getEventTarget(e))) {\n return;\n }\n\n if (e && e.button === 0 && !state.isTriggeringEvent && !(openLink as any).isOpening) {\n let shouldStopPropagation = true;\n if (isDisabled) {\n e.preventDefault();\n }\n\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (\n !state.ignoreEmulatedMouseEvents &&\n !state.isPressed &&\n (state.pointerType === 'virtual' || isVirtualClick(e.nativeEvent))\n ) {\n let stopPressStart = triggerPressStart(e, 'virtual');\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let stopPressUp = triggerPressUpEvent(e, 'virtual');\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let stopPressEnd = triggerPressEndEvent(e, 'virtual');\n triggerClick(e);\n shouldStopPropagation = stopPressStart && stopPressUp && stopPressEnd;\n } else if (state.isPressed && state.pointerType !== 'keyboard') {\n let pointerType =\n state.pointerType ||\n ((e.nativeEvent as PointerEvent).pointerType as PointerType) ||\n 'virtual';\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let stopPressUp = triggerPressUpEvent(createEvent(e.currentTarget, e), pointerType);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let stopPressEnd = triggerPressEndEvent(\n createEvent(e.currentTarget, e),\n pointerType,\n true\n );\n shouldStopPropagation = stopPressUp && stopPressEnd;\n state.isOverTarget = false;\n triggerClick(e);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n cancelEvent(e);\n }\n\n state.ignoreEmulatedMouseEvents = false;\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n }\n }\n };\n\n let onKeyUp = (e: KeyboardEvent) => {\n if (state.isPressed && state.target && isValidKeyboardEvent(e, state.target)) {\n if (shouldPreventDefaultKeyboard(getEventTarget(e) as Element, e.key)) {\n e.preventDefault();\n }\n\n let target = getEventTarget(e);\n let wasPressed = nodeContains(state.target, target as Element);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n triggerPressEndEvent(createEvent(state.target, e), 'keyboard', wasPressed);\n if (wasPressed) {\n triggerSyntheticClick(e, state.target);\n }\n removeAllGlobalListeners();\n\n // If a link was triggered with a key other than Enter, open the URL ourselves.\n // This means the link has a role override, and the default browser behavior\n // only applies when using the Enter key.\n if (\n e.key !== 'Enter' &&\n isHTMLAnchorLink(state.target) &&\n nodeContains(state.target, target as Element) &&\n !e[LINK_CLICKED]\n ) {\n // Store a hidden property on the event so we only trigger link click once,\n // even if there are multiple usePress instances attached to the element.\n e[LINK_CLICKED] = true;\n openLink(state.target, e, false);\n }\n\n state.isPressed = false;\n state.metaKeyEvents?.delete(e.key);\n } else if (e.key === 'Meta' && state.metaKeyEvents?.size) {\n // If we recorded keydown events that occurred while the Meta key was pressed,\n // and those haven't received keyup events already, fire keyup events ourselves.\n // See comment above for more info about the macOS bug causing this.\n let events = state.metaKeyEvents;\n state.metaKeyEvents = undefined;\n for (let event of events.values()) {\n state.target?.dispatchEvent(new KeyboardEvent('keyup', event));\n }\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = e => {\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !nodeContains(e.currentTarget, getEventTarget(e))) {\n return;\n }\n\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if (isVirtualPointerEvent(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n\n state.pointerType = e.pointerType;\n\n let shouldStopPropagation = true;\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget as FocusableElement;\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n\n // Release pointer capture so that touch interactions can leave the original target.\n // This enables onPointerLeave and onPointerEnter to fire.\n let target = getEventTarget(e);\n if ('releasePointerCapture' in target) {\n if ('hasPointerCapture' in target) {\n if (target.hasPointerCapture(e.pointerId)) {\n target.releasePointerCapture(e.pointerId);\n }\n } else {\n (target as Element).releasePointerCapture(e.pointerId);\n }\n }\n addGlobalListener(getOwnerDocument(e.currentTarget), 'pointerup', onPointerUp, false);\n addGlobalListener(\n getOwnerDocument(e.currentTarget),\n 'pointercancel',\n onPointerCancel,\n false\n );\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onMouseDown = e => {\n if (!nodeContains(e.currentTarget, getEventTarget(e))) {\n return;\n }\n\n if (e.button === 0) {\n if (preventFocusOnPress) {\n let dispose = preventFocus(e.target as FocusableElement);\n if (dispose) {\n state.disposables.push(dispose);\n }\n }\n\n e.stopPropagation();\n }\n };\n\n pressProps.onPointerUp = e => {\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!nodeContains(e.currentTarget, getEventTarget(e)) || state.pointerType === 'virtual') {\n return;\n }\n\n // Only handle left clicks. If isPressed is true, delay until onClick.\n if (e.button === 0 && !state.isPressed) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n triggerPressUpEvent(e, state.pointerType || e.pointerType);\n }\n };\n\n pressProps.onPointerEnter = e => {\n if (\n e.pointerId === state.activePointerId &&\n state.target &&\n !state.isOverTarget &&\n state.pointerType != null\n ) {\n state.isOverTarget = true;\n triggerPressStart(createEvent(state.target, e), state.pointerType);\n }\n };\n\n pressProps.onPointerLeave = e => {\n if (\n e.pointerId === state.activePointerId &&\n state.target &&\n state.isOverTarget &&\n state.pointerType != null\n ) {\n state.isOverTarget = false;\n // eslint-disable-next-line react-hooks/rules-of-hooks\n triggerPressEndEvent(createEvent(state.target, e), state.pointerType, false);\n cancelOnPointerExit(e);\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (\n e.pointerId === state.activePointerId &&\n state.isPressed &&\n e.button === 0 &&\n state.target\n ) {\n if (\n nodeContains(state.target, getEventTarget(e) as Element) &&\n state.pointerType != null\n ) {\n // Wait for onClick to fire onPress. This avoids browser issues when the DOM\n // is mutated between onPointerUp and onClick, and is more compatible with third party libraries.\n // https://github.com/adobe/react-spectrum/issues/1513\n // https://issues.chromium.org/issues/40732224\n // However, iOS and Android do not focus or fire onClick after a long press.\n // We work around this by triggering a click ourselves after a timeout.\n // This timeout is canceled during the click event in case the real one fires first.\n // The timeout must be at least 32ms, because Safari on iOS delays the click event on\n // non-form elements without certain ARIA roles (for hover emulation).\n // https://github.com/WebKit/WebKit/blob/dccfae42bb29bd4bdef052e469f604a9387241c0/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm#L875-L892\n let clicked = false;\n let timeout = setTimeout(() => {\n if (state.isPressed && state.target instanceof HTMLElement) {\n if (clicked) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n cancelEvent(e);\n } else {\n focusWithoutScrolling(state.target);\n state.target.click();\n }\n }\n }, 80);\n // Use a capturing listener to track if a click occurred.\n // If stopPropagation is called it may never reach our handler.\n addGlobalListener(e.currentTarget as Document, 'click', () => (clicked = true), true);\n state.disposables.push(() => clearTimeout(timeout));\n } else {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n cancelEvent(e);\n }\n\n // Ignore subsequent onPointerLeave event before onClick on touch devices.\n state.isOverTarget = false;\n }\n };\n\n let onPointerCancel = (e: PointerEvent) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n cancelEvent(e);\n };\n\n pressProps.onDragStart = e => {\n if (!nodeContains(e.currentTarget, getEventTarget(e))) {\n return;\n }\n\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n cancelEvent(e);\n };\n } else if (process.env.NODE_ENV === 'test') {\n // NOTE: this fallback branch is entirely used by unit tests.\n // All browsers now support pointer events, but JSDOM still does not.\n\n pressProps.onMouseDown = e => {\n // Only handle left clicks\n if (e.button !== 0 || !nodeContains(e.currentTarget, getEventTarget(e))) {\n return;\n }\n\n if (state.ignoreEmulatedMouseEvents) {\n e.stopPropagation();\n return;\n }\n\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse';\n\n // Flush sync so that focus moved during react re-renders occurs before we yield back to the browser.\n let shouldStopPropagation = flushSync(() => triggerPressStart(e, state.pointerType!));\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n\n if (preventFocusOnPress) {\n let dispose = preventFocus(e.target as FocusableElement);\n if (dispose) {\n state.disposables.push(dispose);\n }\n }\n addGlobalListener(getOwnerDocument(e.currentTarget), 'mouseup', onMouseUp, false);\n };\n\n pressProps.onMouseEnter = e => {\n if (!nodeContains(e.currentTarget, getEventTarget(e))) {\n return;\n }\n\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onMouseLeave = e => {\n if (!nodeContains(e.currentTarget, getEventTarget(e))) {\n return;\n }\n\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = false;\n // eslint-disable-next-line react-hooks/rules-of-hooks\n shouldStopPropagation = triggerPressEndEvent(e, state.pointerType, false);\n cancelOnPointerExit(e);\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onMouseUp = e => {\n if (!nodeContains(e.currentTarget, getEventTarget(e))) {\n return;\n }\n\n if (!state.ignoreEmulatedMouseEvents && e.button === 0 && !state.isPressed) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n triggerPressUpEvent(e, state.pointerType || 'mouse');\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n // Only handle left clicks\n if (e.button !== 0) {\n return;\n }\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n if (\n state.target &&\n nodeContains(state.target, getEventTarget(e) as Element) &&\n state.pointerType != null\n ) {\n // Wait for onClick to fire onPress. This avoids browser issues when the DOM\n // is mutated between onMouseUp and onClick, and is more compatible with third party libraries.\n } else {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n cancelEvent(e);\n }\n\n state.isOverTarget = false;\n };\n\n pressProps.onTouchStart = e => {\n if (!nodeContains(e.currentTarget, getEventTarget(e))) {\n return;\n }\n\n let touch = getTouchFromEvent(e.nativeEvent);\n if (!touch) {\n return;\n }\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n let shouldStopPropagation = triggerPressStart(\n createTouchEvent(state.target, e),\n state.pointerType\n );\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n addGlobalListener(getOwnerWindow(e.currentTarget), 'scroll', onScroll, true);\n };\n\n pressProps.onTouchMove = e => {\n if (!nodeContains(e.currentTarget, getEventTarget(e))) {\n return;\n }\n\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart(\n createTouchEvent(state.target!, e),\n state.pointerType\n );\n }\n } else if (state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n // eslint-disable-next-line react-hooks/rules-of-hooks\n shouldStopPropagation = triggerPressEndEvent(\n createTouchEvent(state.target!, e),\n state.pointerType,\n false\n );\n cancelOnPointerExit(createTouchEvent(state.target!, e));\n }\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n\n pressProps.onTouchEnd = e => {\n if (!nodeContains(e.currentTarget, getEventTarget(e))) {\n return;\n }\n\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n