UNPKG

@modern-kit/react

Version:
35 lines (31 loc) 921 B
'use strict'; var React = require('react'); var hooksUseEventListener = require('../useEventListener/index.cjs'); require('../usePreservedCallback/index.cjs'); require('../useIsomorphicLayoutEffect/index.cjs'); require('@modern-kit/utils'); function useFocus({ onFocus, onBlur } = {}) { const [isFocus, setIsFocus] = React.useState(false); const ref = React.useRef(null); const focusAction = (event) => { setIsFocus(true); onFocus?.(event); }; const blurAction = (event) => { setIsFocus(false); onBlur?.(event); }; const setFocus = React.useCallback(() => { if (!ref.current) return; ref.current.focus(); setIsFocus(true); }, []); hooksUseEventListener.useEventListener(ref, "focus", focusAction); hooksUseEventListener.useEventListener(ref, "blur", blurAction); return { ref, isFocus, setFocus }; } exports.useFocus = useFocus; //# sourceMappingURL=index.cjs.map