nav to specific articleId via url
This commit is contained in:
@@ -8,17 +8,20 @@ export default function Navbar() {
|
|||||||
component={Link}
|
component={Link}
|
||||||
to="/"
|
to="/"
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
|
className="flex flex-1"
|
||||||
>
|
>
|
||||||
Home
|
Home
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
component={Link}
|
component={Link}
|
||||||
to="/article"
|
to="/articleList"
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
|
className="flex flex-1"
|
||||||
>
|
>
|
||||||
Article
|
Article
|
||||||
</Button>
|
</Button>
|
||||||
|
<div className="flex flex-8"></div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
+7
-54
@@ -1,13 +1,13 @@
|
|||||||
@import "tailwindcss";
|
@import "tailwindcss";
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
|
font-family: ubuntu-mono, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
|
||||||
color-scheme: light dark;
|
color-scheme: light dark;
|
||||||
color: rgba(255, 255, 255, 0.87);
|
color: rgba(0, 0, 0, 1);
|
||||||
background-color: #242424;
|
background-color: #cccccc;
|
||||||
|
|
||||||
font-synthesis: none;
|
font-synthesis: none;
|
||||||
text-rendering: optimizeLegibility;
|
text-rendering: optimizeLegibility;
|
||||||
@@ -15,56 +15,9 @@
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
|
||||||
font-weight: 500;
|
|
||||||
color: #646cff;
|
|
||||||
text-decoration: inherit;
|
|
||||||
}
|
|
||||||
a:hover {
|
|
||||||
color: #535bf2;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
padding-top: 1rem;
|
||||||
display: flex;
|
padding-left: 2rem;
|
||||||
place-items: center;
|
padding-right: 2rem;
|
||||||
min-width: 320px;
|
width: 100%;
|
||||||
min-height: 100vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: 3.2em;
|
|
||||||
line-height: 1.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
border-radius: 8px;
|
|
||||||
border: 1px solid transparent;
|
|
||||||
padding: 0.6em 1.2em;
|
|
||||||
font-size: 1em;
|
|
||||||
font-weight: 500;
|
|
||||||
font-family: inherit;
|
|
||||||
background-color: #1a1a1a;
|
|
||||||
cursor: pointer;
|
|
||||||
transition: border-color 0.25s;
|
|
||||||
}
|
|
||||||
button:hover {
|
|
||||||
border-color: #646cff;
|
|
||||||
}
|
|
||||||
button:focus,
|
|
||||||
button:focus-visible {
|
|
||||||
outline: 4px auto -webkit-focus-ring-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: light) {
|
|
||||||
:root {
|
|
||||||
color: #213547;
|
|
||||||
background-color: #ffffff;
|
|
||||||
}
|
|
||||||
a:hover {
|
|
||||||
color: #747bff;
|
|
||||||
}
|
|
||||||
button {
|
|
||||||
background-color: #f9f9f9;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-8
@@ -1,10 +1,11 @@
|
|||||||
import { StrictMode } from 'react'
|
import { StrictMode } from 'react';
|
||||||
import { createRoot } from 'react-dom/client'
|
import { createRoot } from 'react-dom/client';
|
||||||
import { BrowserRouter, Routes, Route } from 'react-router'
|
import { BrowserRouter, Routes, Route } from 'react-router';
|
||||||
import './index.css'
|
import './index.css';
|
||||||
import Home from './pages/Home.tsx'
|
import Home from './pages/Home.tsx';
|
||||||
import Article from './pages/Article.tsx'
|
import Article from './pages/Article.tsx';
|
||||||
import Navbar from './components/Navbar.tsx'
|
import ArticleList from './pages/ArticleList.tsx';
|
||||||
|
import Navbar from './components/Navbar.tsx';
|
||||||
|
|
||||||
createRoot(document.getElementById('root')!).render(
|
createRoot(document.getElementById('root')!).render(
|
||||||
<StrictMode>
|
<StrictMode>
|
||||||
@@ -12,7 +13,8 @@ createRoot(document.getElementById('root')!).render(
|
|||||||
<Navbar />
|
<Navbar />
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/" element={<Home />} />
|
<Route path="/" element={<Home />} />
|
||||||
<Route path="/article" element={<Article />} />
|
<Route path="/article:articleId" element={<Article />} />
|
||||||
|
<Route path="/articleList" element={<ArticleList />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
</BrowserRouter>
|
</BrowserRouter>
|
||||||
</StrictMode>
|
</StrictMode>
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
|
import { useParams } from 'react-router';
|
||||||
|
|
||||||
export default function Article() {
|
export default function Article() {
|
||||||
|
let { articleId } = useParams();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div id="article">
|
<div id="article">
|
||||||
<h1>Article</h1>
|
<h1>Article: {articleId}</h1>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
export default function ArticleList() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
List of articles to be populated and searchable
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user