import React, { lazy, Suspense } from "react"; import { BrowserRouter as Router, Route, Switch } from "react-router-dom"; //Import style import "./stylesheets/index.css"; //Import all components import Navbar from "./components/Navbar"; import Footer from "./components/Footer"; const Landing = lazy(() => import("./components/Landing")); const Post = lazy(() => import("./components/Post")); const CreatePost = lazy(() => import("./components/CreatePosts")); const EditPost = lazy(() => import("./components/EditPost")); const PostsList = lazy(() => import("./components/PostsList")); const Login = lazy(() => import("./components/Login")); const About = lazy(() => import("./components/About")); const renderLoader = () => ( <div className="spinner-container"> <div className="spinner-border" role="status"> <span className="sr-only">Loading...</span> </div> </div> ); const App = () => ( <div className="container"> <Router> <Navbar /> <Suspense fallback={renderLoader()}> <Switch> <Route path="/" exact component={Landing} /> <Route path="/posts" exact component={PostsList} /> <Route path="/posts/new/" exact component={CreatePost} /> <Route path="/posts/:id" exact component={Post} /> <Route path="/posts/:id/edit" exact component={EditPost} /> <Route path="/login" component={Login} /> <Route path="/about" component={About} /> </Switch> </Suspense> <Footer /> </Router> </div> ); export default App;