i-darrshan's picture
initial push of the update
8b105ad
raw
history blame
888 Bytes
import React, { useEffect, useState } from "react";
import { useLocation } from "react-router-dom";
import styled from "styled-components";
const PageContainer = styled.div`
position: relative;
width: 100%;
height: 100%;
opacity: ${(props) => (props.isVisible ? 1 : 0)};
transform: ${(props) => (props.isVisible ? "translateY(0)" : "translateY(10px)")};
transition: opacity 0.3s ease, transform 0.3s ease;
`;
const TransitionWrapper = ({ children }) => {
const location = useLocation();
const [isVisible, setIsVisible] = useState(true);
useEffect(() => {
setIsVisible(false); // Trigger fade-out animation
const timer = setTimeout(() => setIsVisible(true), 300); // Match animation duration
return () => clearTimeout(timer);
}, [location]);
return <PageContainer isVisible={isVisible}>{children}</PageContainer>;
};
export default TransitionWrapper;