Usage
FocusTrap is a component implementation of use-focus-trap hook, it is used in all Mantine components that require focus trap (Modal, DatePicker, Popover, etc.).
Initial focus
To define the element that will receive initial focus set data-autofocus
attribute:
FocusTrap.InitialFocus
FocusTrap.InitialFocus
is a special component that adds a visually hidden
element which will receive the focus when the focus trap is activated.
Once FocusTrap.InitialFocus
loses focus, it is removed from the tab order.
For example, it is useful if you do not want to focus any elements inside the Modal when it is opened:
Focus trapping logic
- Focus is trapped within child node if
active
prop istrue
- When FocusTrap component is mounted or when
active
prop changes fromfalse
totrue
first element withdata-autofocus
attribute is focused - If there are no elements with
data-autofocus
attribute, then the first element that supports keyboard interaction is focused - If the target element does not have focusable elements or does not support
ref
, then the focus trap will not work - Trap stops working when element outside of the
FocusTrap
child is focused