Path: blob/1.0-develop/resources/scripts/components/elements/transitions/FadeTransition.tsx
10277 views
import React from 'react';1import { Transition } from '@headlessui/react';23type Duration = `duration-${number}`;45interface Props {6as?: React.ElementType;7duration?: Duration | [Duration, Duration];8show: boolean;9children: React.ReactNode;10}1112export default ({ children, duration, ...props }: Props) => {13const [enterDuration, exitDuration] = Array.isArray(duration)14? duration15: !duration16? ['duration-200', 'duration-100']17: [duration, duration];1819return (20<Transition21{...props}22enter={`ease-out ${enterDuration}`}23enterFrom={'opacity-0'}24enterTo={'opacity-100'}25leave={`ease-in ${exitDuration}`}26leaveFrom={'opacity-100'}27leaveTo={'opacity-0'}28>29{children}30</Transition>31);32};333435