import { ReactNode, useEffect, useState } from 'react'; import { useLocation } from 'react-router-dom'; interface PageTransitionProps { children: ReactNode; } export function PageTransition({ children }: PageTransitionProps) { const location = useLocation(); const [displayLocation, setDisplayLocation] = useState(location); const [transitionStage, setTransitionStage] = useState<'fade-in' | 'fade-out'>('fade-in'); useEffect(() => { if (location !== displayLocation) { setTransitionStage('fade-out'); } }, [location, displayLocation]); const onAnimationEnd = () => { if (transitionStage === 'fade-out') { setTransitionStage('fade-in'); setDisplayLocation(location); } }; return (