UNPKG

react-transition-preset

Version:

Lightweight, zero-dependency transition component for React with common preset transition

43 lines (40 loc) 1.1 kB
import { presets } from '../presets.js'; import { TransitionStatus } from '../use-transition.js'; // src/get-transition-styles/get-transition-styles.ts var transitionStatuses = { [TransitionStatus.entering]: "in", [TransitionStatus.entered]: "in", [TransitionStatus.exiting]: "out", [TransitionStatus.exited]: "out", [TransitionStatus.preEntering]: "out", [TransitionStatus.preExiting]: "out" }; function getTransitionStyles({ transition, state, duration, timingFunction }) { const shared = { transitionDuration: `${duration}ms`, transitionTimingFunction: timingFunction }; if (typeof transition === "string") { if (!(transition in presets)) { return {}; } return { transitionProperty: presets[transition].transitionProperty, ...shared, ...presets[transition].common, ...presets[transition][transitionStatuses[state]] }; } return { transitionProperty: transition.transitionProperty, ...shared, ...transition.common, ...transition[transitionStatuses[state]] }; } export { getTransitionStyles };