@react-aria/interactions

  • Version 3.21.1
  • Published
  • 679 kB
  • 4 dependencies
  • Apache-2.0 license

Install

npm i @react-aria/interactions
yarn add @react-aria/interactions
pnpm add @react-aria/interactions

Overview

Spectrum UI components in React

Index

Functions

function addWindowFocusTracking

addWindowFocusTracking: (element?: HTMLElement | null) => () => void;
  • EXPERIMENTAL Adds a window (i.e. iframe) to the list of windows that are being tracked for focus visible.

    Sometimes apps render portions of their tree into an iframe. In this case, we cannot accurately track if the focus is visible because we cannot see interactions inside the iframe. If you have this in your application's architecture, then this function will attach event listeners inside the iframe. You should call addWindowFocusTracking with an element from inside the window you wish to add. We'll retrieve the relevant elements based on that. Note, you do not need to call this for the default window, as we call it for you.

    When you are ready to stop listening, but you do not wish to unmount the iframe, you may call the cleanup function returned by addWindowFocusTracking. Otherwise, when you unmount the iframe, all listeners and state will be cleaned up automatically for you.

    Parameter element

    document.body - The element provided will be used to get the window to add.

    Returns

    A function to remove the event listeners and cleanup the state.

function getInteractionModality

getInteractionModality: () => Modality | null;

    function isFocusVisible

    isFocusVisible: () => boolean;
    • If true, keyboard focus is visible.

    function setInteractionModality

    setInteractionModality: (modality: Modality) => void;

      function useFocus

      useFocus: <Target extends FocusableElement = FocusableElement>(
      props: FocusProps<Target>
      ) => FocusResult<Target>;
      • Handles focus events for the immediate target. Focus events on child elements will be ignored.

      function useFocusVisible

      useFocusVisible: (props?: FocusVisibleProps) => FocusVisibleResult;
      • Manages focus visible state for the page, and subscribes individual components for updates.

      function useFocusVisibleListener

      useFocusVisibleListener: (
      fn: FocusVisibleHandler,
      deps: ReadonlyArray<any>,
      opts?: { isTextInput?: boolean }
      ) => void;
      • Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).

      function useFocusWithin

      useFocusWithin: (props: FocusWithinProps) => FocusWithinResult;
      • Handles focus events for the target and its descendants.

      function useHover

      useHover: (props: HoverProps) => HoverResult;
      • Handles pointer hover interactions for an element. Normalizes behavior across browsers and platforms, and ignores emulated mouse events on touch devices.

      function useInteractionModality

      useInteractionModality: () => Modality | null;
      • Keeps state of the current modality.

      function useInteractOutside

      useInteractOutside: (props: InteractOutsideProps) => void;
      • Example, used in components like Dialogs and Popovers so they can close when a user clicks outside them.

      function useKeyboard

      useKeyboard: (props: KeyboardProps) => KeyboardResult;
      • Handles keyboard interactions for a focusable element.

      function useLongPress

      useLongPress: (props: LongPressProps) => LongPressResult;
      • Handles long press interactions across mouse and touch devices. Supports a customizable time threshold, accessibility description, and normalizes behavior across browsers and devices.

      function useMove

      useMove: (props: MoveEvents) => MoveResult;
      • Handles move interactions across mouse, touch, and keyboard, including dragging with the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and platforms, and ignores emulated mouse events on touch devices.

      function usePress

      usePress: (props: PressHookProps) => PressResult;
      • Handles press interactions across mouse, touch, keyboard, and screen readers. It normalizes behavior across browsers and platforms, and handles many nuances of dealing with pointer and keyboard events.

      function useScrollWheel

      useScrollWheel: (props: ScrollWheelProps, ref: RefObject<HTMLElement>) => void;

        Interfaces

        interface FocusProps

        interface FocusProps<Target = FocusableElement> extends FocusEvents<Target> {}

          property isDisabled

          isDisabled?: boolean;
          • Whether the focus events should be disabled.

          interface FocusResult

          interface FocusResult<Target = FocusableElement> {}

            property focusProps

            focusProps: DOMAttributes<Target>;
            • Props to spread onto the target element.

            interface FocusVisibleProps

            interface FocusVisibleProps {}

              property autoFocus

              autoFocus?: boolean;
              • Whether the element will be auto focused.

              property isTextInput

              isTextInput?: boolean;
              • Whether the element is a text input.

              interface FocusVisibleResult

              interface FocusVisibleResult {}

                property isFocusVisible

                isFocusVisible: boolean;
                • Whether keyboard focus is visible globally.

                interface FocusWithinProps

                interface FocusWithinProps {}

                  property isDisabled

                  isDisabled?: boolean;
                  • Whether the focus within events should be disabled.

                  property onBlurWithin

                  onBlurWithin?: (e: FocusEvent) => void;
                  • Handler that is called when the target element and all descendants lose focus.

                  property onFocusWithin

                  onFocusWithin?: (e: FocusEvent) => void;
                  • Handler that is called when the target element or a descendant receives focus.

                  property onFocusWithinChange

                  onFocusWithinChange?: (isFocusWithin: boolean) => void;
                  • Handler that is called when the the focus within state changes.

                  interface FocusWithinResult

                  interface FocusWithinResult {}

                    property focusWithinProps

                    focusWithinProps: DOMAttributes;
                    • Props to spread onto the target element.

                    interface HoverProps

                    interface HoverProps extends HoverEvents {}

                      property isDisabled

                      isDisabled?: boolean;
                      • Whether the hover events should be disabled.

                      interface HoverResult

                      interface HoverResult {}

                        property hoverProps

                        hoverProps: DOMAttributes;
                        • Props to spread on the target element.

                        property isHovered

                        isHovered: boolean;

                          interface InteractOutsideProps

                          interface InteractOutsideProps {}

                            property isDisabled

                            isDisabled?: boolean;
                            • Whether the interact outside events should be disabled.

                            property onInteractOutside

                            onInteractOutside?: (e: PointerEvent) => void;

                              property onInteractOutsideStart

                              onInteractOutsideStart?: (e: PointerEvent) => void;

                                property ref

                                ref: RefObject<Element>;

                                  interface KeyboardProps

                                  interface KeyboardProps extends KeyboardEvents {}

                                    property isDisabled

                                    isDisabled?: boolean;
                                    • Whether the keyboard events should be disabled.

                                    interface KeyboardResult

                                    interface KeyboardResult {}

                                      property keyboardProps

                                      keyboardProps: DOMAttributes;
                                      • Props to spread onto the target element.

                                      interface LongPressProps

                                      interface LongPressProps {}

                                        property accessibilityDescription

                                        accessibilityDescription?: string;
                                        • A description for assistive techology users indicating that a long press action is available, e.g. "Long press to open menu".

                                        property isDisabled

                                        isDisabled?: boolean;
                                        • Whether long press events should be disabled.

                                        property onLongPress

                                        onLongPress?: (e: LongPressEvent) => void;
                                        • Handler that is called when the threshold time is met while the press is over the target.

                                        property onLongPressEnd

                                        onLongPressEnd?: (e: LongPressEvent) => void;
                                        • Handler that is called when a long press interaction ends, either over the target or when the pointer leaves the target.

                                        property onLongPressStart

                                        onLongPressStart?: (e: LongPressEvent) => void;
                                        • Handler that is called when a long press interaction starts.

                                        property threshold

                                        threshold?: number;
                                        • The amount of time in milliseconds to wait before triggering a long press. 500ms

                                        interface LongPressResult

                                        interface LongPressResult {}

                                          property longPressProps

                                          longPressProps: DOMAttributes;
                                          • Props to spread on the target element.

                                          interface MoveResult

                                          interface MoveResult {}

                                            property moveProps

                                            moveProps: DOMAttributes;
                                            • Props to spread on the target element.

                                            interface PressHookProps

                                            interface PressHookProps extends PressProps {}

                                              property ref

                                              ref?: RefObject<Element>;
                                              • A ref to the target element.

                                              interface PressProps

                                              interface PressProps extends PressEvents {}

                                                property allowTextSelectionOnPress

                                                allowTextSelectionOnPress?: boolean;
                                                • Whether text selection should be enabled on the pressable element.

                                                property isDisabled

                                                isDisabled?: boolean;
                                                • Whether the press events should be disabled.

                                                property isPressed

                                                isPressed?: boolean;
                                                • Whether the target is in a controlled press state (e.g. an overlay it triggers is open).

                                                property preventFocusOnPress

                                                preventFocusOnPress?: boolean;
                                                • Whether the target should not receive focus on press.

                                                property shouldCancelOnPointerExit

                                                shouldCancelOnPointerExit?: boolean;
                                                • Whether press events should be canceled when the pointer leaves the target while pressed. By default, this is false, which means if the pointer returns back over the target while still pressed, onPressStart will be fired again. If set to true, the press is canceled when the pointer leaves the target and onPressStart will not be fired if the pointer returns.

                                                interface PressResult

                                                interface PressResult {}

                                                  property isPressed

                                                  isPressed: boolean;
                                                  • Whether the target is currently pressed.

                                                  property pressProps

                                                  pressProps: DOMAttributes;
                                                  • Props to spread on the target element.

                                                  interface ScrollWheelProps

                                                  interface ScrollWheelProps extends ScrollEvents {}

                                                    property isDisabled

                                                    isDisabled?: boolean;
                                                    • Whether the scroll listener should be disabled.

                                                    Type Aliases

                                                    type FocusVisibleHandler

                                                    type FocusVisibleHandler = (isFocusVisible: boolean) => void;

                                                      type Modality

                                                      type Modality = 'keyboard' | 'pointer' | 'virtual';

                                                        Package Files (11)

                                                        Dependencies (4)

                                                        Dev Dependencies (0)

                                                        No dev dependencies.

                                                        Peer Dependencies (1)

                                                        Badge

                                                        To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

                                                        You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@react-aria/interactions.

                                                        • Markdown
                                                          [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@react-aria/interactions)
                                                        • HTML
                                                          <a href="https://www.jsdocs.io/package/@react-aria/interactions"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>