IB-AR-Neural-Style-Transfers / artficial.webapp / src / components / AnimatedRoutes / AnimatedRoutes.js
AnimatedRoutes.js
Raw
import React from "react";
import {
  BrowserRouter,
  Routes,
  Route,
  Navigate,
  useLocation,
} from "react-router-dom";
import { useAuthContext } from "../../hooks/useAuthContext";
import { Error } from "../Essentials/Error/Error";
import AllArtworks from "../Artwork/AllArtworks/AllArtworks";
import Preface from "../Artwork/CreateArtwork/Preface/Preface";
import Navbar from "../Essentials/Navbar/Navbar";
import Footer from "../Essentials/Footer/Footer";
import Login from "../Authentication/Login/Login";
import Signup from "../Authentication/Signup/Signup";
import Home from "../Essentials/Home/Home";
import Step1 from "../Artwork/CreateArtwork/Step1/Step1";
import Step2 from "../Artwork/CreateArtwork/Step2/Step2";
import Step3 from "../Artwork/CreateArtwork/Step3/Step3";
import { AnimatePresence } from "framer-motion";

function AnimatedRoutes() {
  const location = useLocation();
  const { user } = useAuthContext();
  return (
    <AnimatePresence>
      <Routes location={location} key={location.pathname}>
        <Route path="/" element={<Home />} />
        <Route path="/allartworks" element={<AllArtworks />} />
        <Route
          path="/createartwork"
          element={user ? <Preface /> : <Navigate to="/login" />}
        />
        <Route path="/createartwork/step1" element={<Step1 />} />
        <Route path="/createartwork/step2" element={<Step2 />} />
        <Route path="/createartwork/step3" element={<Step3 />} />
        <Route path="/login" element={user ? <Navigate to="/" /> : <Login />} />
        <Route
          path="/signup"
          element={user ? <Navigate to="/" /> : <Signup />}
        />
        <Route path="*" element={<Error />} />
      </Routes>
    </AnimatePresence>
  );
}

export default AnimatedRoutes;