rsuite
Version:
A suite of react components
42 lines (41 loc) • 882 B
JavaScript
'use client';
;
exports.__esModule = true;
exports.default = void 0;
var _react = require("react");
var _hooks = require("../internals/hooks");
const useActive = props => {
const {
onOpen,
onClose,
target,
setSearchKeyword
} = props;
// Use component active state to support keyboard events.
const [active, setActive] = (0, _react.useState)(false);
const onEnter = (0, _hooks.useEventCallback)(node => {
props.onEnter?.(node);
if (!target.current) {
return;
}
onOpen?.();
setActive(true);
});
const onExit = (0, _hooks.useEventCallback)(node => {
props.onExit?.(node);
if (!target.current) {
return;
}
onClose?.();
setActive(false);
setSearchKeyword('');
});
return {
active,
events: {
onEnter,
onExit
}
};
};
var _default = exports.default = useActive;