UNPKG

rsuite

Version:

A suite of react components

46 lines (45 loc) 1.09 kB
'use client'; "use strict"; exports.__esModule = true; exports.default = void 0; var _react = require("react"); var _hooks = require("../../internals/hooks"); function useFocusState(props) { const { target, value, focusActiveNode } = props; const [active, setActive] = (0, _react.useState)(false); const [focusItemValue, setFocusItemValue] = (0, _react.useState)(null); const focusTarget = (0, _hooks.useEventCallback)(() => { target.current?.focus(); }); const onEnter = (0, _hooks.useEventCallback)(node => { setActive(true); props.onEnter?.(node); }); const onExit = (0, _hooks.useEventCallback)(node => { setActive(false); focusTarget(); props.onExit?.(node); }); const onEntered = (0, _hooks.useEventCallback)(node => { if (value) { setFocusItemValue(value); focusActiveNode(); } props.onEntered?.(node); }); return { active, focusItemValue, setFocusItemValue, triggerProps: { onEnter, onExit, onEntered } }; } var _default = exports.default = useFocusState;