1+ // src/App.jsx
2+
13import { BrowserRouter , Routes , Route } from "react-router-dom" ;
4+ import { useState , useEffect } from "react" ;
25import Home from "./pages/Home" ;
36import About from "./pages/About" ;
47import NotFound from "./pages/404" ;
@@ -7,32 +10,41 @@ import ContactForm from "./pages/Contact";
710import Events from "./pages/Events" ;
811import Base from "./layouts/Base" ;
912import Subscribe from "./components/Subscribe" ;
10- import { useState } from "react" ;
11- // import NewsletterPage from "./pages/NewsletterPage";
13+ import Loader from "./components/Loader" ;
1214
1315export default function App ( ) {
14- const [ isVisible , setIsVisible ] = useState ( false ) ;
15-
16- const handleSetVisible = ( value ) => {
17- setIsVisible ( value ) ;
18- } ;
16+ const [ isVisible , setIsVisible ] = useState ( false ) ;
17+ const [ loading , setLoading ] = useState ( true ) ;
18+
19+ useEffect ( ( ) => {
20+ const timer = setTimeout ( ( ) => {
21+ setLoading ( false ) ;
22+ } , 1500 ) ; // I have Adjusted loader time to 1.5 seconds for smoother transition
23+
24+ return ( ) => clearTimeout ( timer ) ; // Cleaning up timer
25+ } , [ ] ) ;
26+
27+ const handleSetVisible = ( value ) => setIsVisible ( value ) ;
1928
2029 return (
2130 < div className = "bg-primary" >
22- { isVisible && < Subscribe handle = { handleSetVisible } /> }
23- < BrowserRouter >
24- < Base >
25- < Routes >
26- < Route path = "/" element = { < Home handle = { handleSetVisible } /> } />
27- < Route path = "/about-us" element = { < About handle = { handleSetVisible } /> } />
28- < Route path = "/community" element = { < Community /> } />
29- < Route path = "/events" element = { < Events /> } />
30- < Route path = "/contact-us" element = { < ContactForm /> } />
31- { /* <Route path="/newsletter" element={<NewsletterPage />} /> */ }
32- < Route path = "*" element = { < NotFound /> } />
33- </ Routes >
34- </ Base >
35- </ BrowserRouter >
31+ { isVisible && < Subscribe handle = { handleSetVisible } /> }
32+ { loading ? (
33+ < Loader />
34+ ) : (
35+ < BrowserRouter >
36+ < Base >
37+ < Routes >
38+ < Route path = "/" element = { < Home handle = { handleSetVisible } /> } />
39+ < Route path = "/about-us" element = { < About handle = { handleSetVisible } /> } />
40+ < Route path = "/community" element = { < Community /> } />
41+ < Route path = "/events" element = { < Events /> } />
42+ < Route path = "/contact-us" element = { < ContactForm /> } />
43+ < Route path = "*" element = { < NotFound /> } />
44+ </ Routes >
45+ </ Base >
46+ </ BrowserRouter >
47+ ) }
3648 </ div >
3749 ) ;
3850}
0 commit comments