curls
Version:
💪 Responsive, expressive UI primitives for React written with Style Hooks and Emotion
75 lines (63 loc) • 2.01 kB
JavaScript
exports.__esModule = true
exports.default = exports.getDelay = void 0
var _switch = _interopRequireDefault(require('@react-hook/switch'))
var _Transitionable = require('./Transitionable')
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj}
}
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
}
const getDelay = (value, props) =>
value === true
? props.enterDelay !== void 0
? props.enterDelay
: props.delay
: props.leaveDelay !== void 0
? props.leaveDelay
: props.delay
exports.getDelay = getDelay
var _default = (
useTransition, // eslint-disable-next-line no-unused-vars
_ref
) => {
let {initialVisible = false, visible} = _ref,
props = _objectWithoutProperties(_ref, ['initialVisible', 'visible'])
let [isVisible, toggle] = (0, _switch.default)(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: (0, _Transitionable.useTransitionable)(useTransition(props)).css,
}
}
exports.default = _default