MCPcopy Index your code
hub / github.com/adobe/react-spectrum / useEvent

Function useEvent

packages/react-aria/src/utils/useEvent.ts:17–37  ·  view source on GitHub ↗
(
  ref: RefObject<EventTarget | null>,
  event: K | (string & {}),
  handler?: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,
  options?: boolean | AddEventListenerOptions
)

Source from the content-addressed store, hash-verified

15import {useEffectEvent} from './useEffectEvent';
16
17export function useEvent<K extends keyof GlobalEventHandlersEventMap>(
18 ref: RefObject<EventTarget | null>,
19 event: K | (string & {}),
20 handler?: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,
21 options?: boolean | AddEventListenerOptions
22): void {
23 let handleEvent = useEffectEvent(handler);
24 let isDisabled = handler == null;
25
26 useEffect(() => {
27 if (isDisabled || !ref.current) {
28 return;
29 }
30
31 let element = ref.current;
32 element.addEventListener(event, handleEvent as EventListener, options);
33 return () => {
34 element.removeEventListener(event, handleEvent as EventListener, options);
35 };
36 }, [ref, event, options, isDisabled]);
37}

Callers 15

FocusScope.test.jsFile · 0.90
useScrollWheelFunction · 0.90
useLoadMoreFunction · 0.90
useComboBoxFunction · 0.90
useRangeCalendarFunction · 0.90
useSelectableCollectionFunction · 0.90
useSubmenuTriggerFunction · 0.90
useAutocompleteFunction · 0.90
useDisclosureFunction · 0.90
useDateSegmentFunction · 0.90
Input.tsxFile · 0.90
TokenField.tsxFile · 0.90

Calls 3

useEffectEventFunction · 0.90
addEventListenerMethod · 0.80
removeEventListenerMethod · 0.80

Tested by

no test coverage detected