UNPKG

refun

Version:

A collection of React Hook-enabled functions that compose harmoniously with each other. Similar to `recompose`, but:

43 lines (37 loc) 1.18 kB
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import { useState, useRef } from 'react'; import { isFunction, NOOP } from 'tsfn'; export var mapFocused = function mapFocused(props) { var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), isFocused = _useState2[0], setIsFocused = _useState2[1]; var origOnFocusRef = useRef(); var origOnBlurRef = useRef(); var onFocusRef = useRef(NOOP); var onBlurRef = useRef(NOOP); origOnFocusRef.current = props.onFocus; origOnBlurRef.current = props.onBlur; if (onFocusRef.current === NOOP) { onFocusRef.current = function () { setIsFocused(true); if (isFunction(origOnFocusRef.current)) { origOnFocusRef.current(); } }; } if (onBlurRef.current === NOOP) { onBlurRef.current = function () { setIsFocused(false); if (isFunction(origOnBlurRef.current)) { origOnBlurRef.current(); } }; } return Object.assign({}, props, { isFocused: isFocused || Boolean(props.isFocused), onFocus: onFocusRef.current, onBlur: onBlurRef.current }); }; //# sourceMappingURL=map-focused.js.map