diff --git a/package-lock.json b/package-lock.json index 49e8f6e..663f52a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,8 @@ "lucide-react": "^0.344.0", "nodemailer": "^7.0.5", "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": "^18.3.1", + "react-router-dom": "^6.30.3" }, "devDependencies": { "@eslint/js": "^9.9.1", @@ -1069,6 +1070,15 @@ "node": ">=14" } }, + "node_modules/@remix-run/router": { + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", + "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@rolldown/pluginutils": { "version": "1.0.0-beta.19", "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz", @@ -3724,6 +3734,38 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz", + "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz", + "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2", + "react-router": "6.30.3" + }, + "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 d5cc3ca..ead5839 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "lucide-react": "^0.344.0", "nodemailer": "^7.0.5", "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": "^18.3.1", + "react-router-dom": "^6.30.3" }, "devDependencies": { "@eslint/js": "^9.9.1", diff --git a/src/App.tsx b/src/App.tsx index 57903c5..4701787 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,17 @@ +import { Navigate, Route, Routes } from 'react-router-dom'; +import LabExperimentPage from './lab/pages/LabExperimentPage'; +import LabIndexPage from './lab/pages/LabIndexPage'; import HomePage from './pages/HomePage'; function App() { - return ; + return ( + + } /> + } /> + } /> + } /> + + ); } export default App; diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index 2ba90c1..e21cb43 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -1,16 +1,16 @@ const navItems = [ - { label: 'Work', href: '#work' }, - { label: 'XR Performance Lab', href: '#xr-performance-lab' }, - { label: 'Writing', href: '#writing' }, - { label: 'About', href: '#about' }, - { label: 'Contact', href: '#contact' } + { label: 'Work', href: '/#work' }, + { label: 'XR Performance Lab', href: '/lab' }, + { label: 'Writing', href: '/#writing' }, + { label: 'About', href: '/#about' }, + { label: 'Contact', href: '/#contact' } ]; export default function Navbar() { return (