diff --git a/.vscode b/.vscode new file mode 100644 index 0000000..2a8463f --- /dev/null +++ b/.vscode @@ -0,0 +1,13 @@ +{ + "[typescript]": { + "editor.defaultFormatter": "vscode.typescript-language-features" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } +} + + + + + diff --git a/package-lock.json b/package-lock.json index 3427e73..0d49be8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ "dependencies": { "react": "^18.3.1", "react-dom": "^18.3.1", - "react-icons": "^5.2.1" + "react-icons": "^5.2.1", + "react-router-dom": "^6.26.0" }, "devDependencies": { "@types/react": "^18.3.3", @@ -1058,6 +1059,14 @@ "node": ">=14" } }, + "node_modules/@remix-run/router": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.0.tgz", + "integrity": "sha512-zDICCLKEwbVYTS6TjYaWtHXxkdoUvD/QXvyVZjGCsWz5vyH7aFeONlPffPdW+Y/t6KT0MgXb2Mfjun9YpWN1dA==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.18.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", @@ -3447,6 +3456,36 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.0.tgz", + "integrity": "sha512-wVQq0/iFYd3iZ9H2l3N3k4PL8EEHcb0XlU2Na8nEwmiXgIUElEH6gaJDtUQxJ+JFzmIXaQjfdpcGWaM6IoQGxg==", + "dependencies": { + "@remix-run/router": "1.19.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.0.tgz", + "integrity": "sha512-RRGUIiDtLrkX3uYcFiCIxKFWMcWQGMojpYZfcstc63A1+sSnVgILGIm9gNUA6na3Fm1QuPGSBQH2EMbAZOnMsQ==", + "dependencies": { + "@remix-run/router": "1.19.0", + "react-router": "6.26.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", diff --git a/package.json b/package.json index 35ffd48..5c07b49 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "dependencies": { "react": "^18.3.1", "react-dom": "^18.3.1", - "react-icons": "^5.2.1" + "react-icons": "^5.2.1", + "react-router-dom": "^6.26.0" }, "devDependencies": { "@types/react": "^18.3.3", diff --git a/src/App.tsx b/src/App.tsx index 5d01a74..37920d0 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,19 +1,16 @@ -import Navbar from "./components/Navbar"; -import Hero from "./components/Hero"; -import HomeCards from "./components/HomeCards"; -import JobListings from "./components/JobListings"; -import ViewAllJobs from "./components/ViewAllJobs"; +import { Route, createBrowserRouter, createRoutesFromElements, RouterProvider } from "react-router-dom"; +import HomePage from "./pages/HomePage"; +import MainLayout from "./layouts/MainLayout" + +const router = createBrowserRouter( + createRoutesFromElements( + }> + } /> + + )); const App = () => { - return ( - <> - - - - - - - ) + return }; export default App; @@ -21,4 +18,7 @@ export default App; // Next Lesson Use State -// https://www.youtube.com/watch?v=LDB4uaJ87e0&t=1644s \ No newline at end of file +// https://www.youtube.com/watch?v=LDB4uaJ87e0&t=1644s + +// React Router +// https://youtu.be/LDB4uaJ87e0?t=4757 \ No newline at end of file diff --git a/src/layouts/MainLayout.tsx b/src/layouts/MainLayout.tsx new file mode 100644 index 0000000..bd252b7 --- /dev/null +++ b/src/layouts/MainLayout.tsx @@ -0,0 +1,13 @@ +import { Outlet } from "react-router-dom" +import Navbar from "../components/Navbar" + +const MainLayout = () => { + return ( + <> + + + + ) +} + +export default MainLayout \ No newline at end of file diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx new file mode 100644 index 0000000..ba6d684 --- /dev/null +++ b/src/pages/HomePage.tsx @@ -0,0 +1,18 @@ +import Hero from "../components/Hero"; +import HomeCards from "../components/HomeCards"; +import JobListings from "../components/JobListings"; +import ViewAllJobs from "../components/ViewAllJobs"; + +const HomePage = () => { + return ( + <> + + + + + + ) +} + +export default HomePage +