diff --git a/frontend/src/App.js b/frontend/src/App.js index 1263670..afbde72 100644 --- a/frontend/src/App.js +++ b/frontend/src/App.js @@ -1,51 +1,65 @@ -import './App.css'; +import "./App.css"; +import { lazy, Suspense } from "react"; import { BrowserRouter, Route, Routes } from "react-router-dom"; -import Navbar from "./components/Navbar"; -import Home from "./pages/Home"; -import Search from './pages/Search'; -import { DataProvider } from './context/DataContext'; -import ImageTree from './pages/3DTree'; -import React, { useEffect, useState } from 'react'; -import axios from 'axios'; -import { ToastContainer, toast } from 'react-toastify'; -import 'react-toastify/dist/ReactToastify.css'; +import { DataProvider } from "./context/DataContext"; +import React, { useEffect, useState } from "react"; +import axios from "axios"; +import { ToastContainer, toast } from "react-toastify"; +import "react-toastify/dist/ReactToastify.css"; + +// Add delay wrapper for lazy loading +const delayLoad = (promise) => { + return new Promise(resolve => { + setTimeout(() => { + resolve(promise); + }, 2000); + }); +} + +// Modify lazy imports to include delay +const Navbar = lazy(() => delayLoad(import("./components/Navbar"))); +const Home = lazy(() => delayLoad(import("./pages/Home"))); +const Search = lazy(() => delayLoad(import("./pages/Search"))); +const ImageTree = lazy(() => delayLoad(import("./pages/3DTree.jsx"))); function App() { const [data, setData] = useState([]); - const [error,seterror]=useState(false) - useEffect(() => { + const [error, seterror] = useState(false); + + useEffect(() => { const fetchData = async () => { try { - const response = await axios.get(`https://devluplabs.iitj.ac.in/ftadmin/tree/`); + const response = await axios.get( + `https://devluplabs.iitj.ac.in/ftadmin/tree/` + ); setData(response.data); } catch (error) { - seterror(true) + seterror(true); } }; fetchData(); }, []); - if(error){ - toast.error("server error",{ - autoClose:20000 - }) + if (error) { + toast.error("server error", { + autoClose: 20000, + }); } -// console.log(window.location.pathname) + return ( - - - - - - - } /> - } /> - } /> - - - + + Loading...}> + + + + + } /> + } /> + } /> + + + + ); }