UNPKG

curls

Version:

💪 Responsive, expressive UI primitives for React written with Style Hooks and Emotion

59 lines (55 loc) • 1.72 kB
function _objectWithoutProperties(source, excluded) { if (source == null) return {} var target = _objectWithoutPropertiesLoose(source, excluded) var key, i if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source) for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i] if (excluded.indexOf(key) >= 0) continue if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue target[key] = source[key] } } return target } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {} var target = {} var sourceKeys = Object.keys(source) var key, i for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i] if (excluded.indexOf(key) >= 0) continue target[key] = source[key] } return target } import useSwitch from '@react-hook/switch' import {useTransitionable} from './Transitionable' export const getDelay = (value, props) => value === true ? props.enterDelay !== void 0 ? props.enterDelay : props.delay : props.leaveDelay !== void 0 ? props.leaveDelay : props.delay export default ( useTransition, // eslint-disable-next-line no-unused-vars _ref ) => { let {initialVisible = false, visible} = _ref, props = _objectWithoutProperties(_ref, ['initialVisible', 'visible']) let [isVisible, toggle] = useSwitch(initialVisible) isVisible = visible === void 0 || visible === null ? isVisible : visible props.isVisible = isVisible props.delay = getDelay(isVisible, props) return { show: toggle.on, hide: toggle.off, toggle, isVisible, css: useTransitionable(useTransition(props)).css, } }