react-router-dom

This commit is contained in:
Oliver Bryan
2025-12-13 18:55:21 +00:00
parent 2b4be68a5d
commit 465daacc94
5 changed files with 55 additions and 18 deletions

View File

@@ -14,6 +14,7 @@
"lucide-react": "^0.561.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-router-dom": "^7.10.1",
"tailwind-merge": "^3.4.0",
"tailwindcss": "^4.1.18",
},
@@ -268,6 +269,8 @@
"convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="],
"cookie": ["cookie@1.1.1", "", {}, "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ=="],
"csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="],
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
@@ -346,12 +349,18 @@
"react-refresh": ["react-refresh@0.17.0", "", {}, "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ=="],
"react-router": ["react-router@7.10.1", "", { "dependencies": { "cookie": "^1.0.1", "set-cookie-parser": "^2.6.0" }, "peerDependencies": { "react": ">=18", "react-dom": ">=18" }, "optionalPeers": ["react-dom"] }, "sha512-gHL89dRa3kwlUYtRQ+m8NmxGI6CgqN+k4XyGjwcFoQwwCWF6xXpOCUlDovkXClS0d0XJN/5q7kc5W3kiFEd0Yw=="],
"react-router-dom": ["react-router-dom@7.10.1", "", { "dependencies": { "react-router": "7.10.1" }, "peerDependencies": { "react": ">=18", "react-dom": ">=18" } }, "sha512-JNBANI6ChGVjA5bwsUIwJk7LHKmqB4JYnYfzFwyp2t12Izva11elds2jx7Yfoup2zssedntwU0oZ5DEmk5Sdaw=="],
"rollup": ["rollup@4.53.3", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.3", "@rollup/rollup-android-arm64": "4.53.3", "@rollup/rollup-darwin-arm64": "4.53.3", "@rollup/rollup-darwin-x64": "4.53.3", "@rollup/rollup-freebsd-arm64": "4.53.3", "@rollup/rollup-freebsd-x64": "4.53.3", "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", "@rollup/rollup-linux-arm-musleabihf": "4.53.3", "@rollup/rollup-linux-arm64-gnu": "4.53.3", "@rollup/rollup-linux-arm64-musl": "4.53.3", "@rollup/rollup-linux-loong64-gnu": "4.53.3", "@rollup/rollup-linux-ppc64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-musl": "4.53.3", "@rollup/rollup-linux-s390x-gnu": "4.53.3", "@rollup/rollup-linux-x64-gnu": "4.53.3", "@rollup/rollup-linux-x64-musl": "4.53.3", "@rollup/rollup-openharmony-arm64": "4.53.3", "@rollup/rollup-win32-arm64-msvc": "4.53.3", "@rollup/rollup-win32-ia32-msvc": "4.53.3", "@rollup/rollup-win32-x64-gnu": "4.53.3", "@rollup/rollup-win32-x64-msvc": "4.53.3", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA=="],
"scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="],
"semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
"set-cookie-parser": ["set-cookie-parser@2.7.2", "", {}, "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw=="],
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
"tailwind-merge": ["tailwind-merge@3.4.0", "", {}, "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g=="],

View File

@@ -19,6 +19,7 @@
"lucide-react": "^0.561.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-router-dom": "^7.10.1",
"tailwind-merge": "^3.4.0",
"tailwindcss": "^4.1.18"
},

View File

@@ -1,11 +1,18 @@
import { ThemeProvider } from "@/components/theme-provider";
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Home from "./Home";
import Index from "./Index";
import Test from "./Test";
function App() {
return (
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
<Home />
<BrowserRouter>
<Routes>
<Route path="/" element={<Index />} />
<Route path="/test" element={<Test />} />
</Routes>
</BrowserRouter>
</ThemeProvider>
);
}

View File

@@ -10,7 +10,7 @@ function Issue({ issue }: { issue: any }) {
);
}
function Home() {
function Index() {
const [issues, setIssues] = useState([]);
const serverURL = import.meta.env.SERVER_URL?.trim() || "http://localhost:3000";
@@ -23,20 +23,24 @@ function Home() {
return (
<main className="w-full h-[100vh] flex flex-col items-center justify-center gap-4 p-4">
<h1>Issue Project Manager</h1>
<Button onClick={getIssues} className={""}>
{issues.length > 0 ? (
<>
re-fetch issues
<RefreshCw />
</>
) : (
<>
fetch issues
<CloudSync />
</>
)}
</Button>
<h1 className="text-3xl font-bold">Issue Project Manager</h1>
<div className="flex gap-2">
<Button onClick={getIssues} className={""}>
{issues.length > 0 ? (
<>
re-fetch issues
<RefreshCw />
</>
) : (
<>
fetch issues
<CloudSync />
</>
)}
</Button>
<Button variant="outline" linkTo={"/test"}>Go to Test Page</Button>
</div>
{issues.length > 0 && (
<>
@@ -52,4 +56,4 @@ function Home() {
);
}
export default Home;
export default Index;

16
src/Test.tsx Normal file
View File

@@ -0,0 +1,16 @@
import { Button } from "@/components/ui/button";
function Test() {
return (
<main className="w-full h-[100vh] flex flex-col items-center justify-center gap-4 p-4">
<h1 className="text-3xl font-bold">Test</h1>
<p className="text-muted-foreground">Simple test page for demo</p>
<div className="flex gap-4">
<Button linkTo="/">go back to "/"</Button>
</div>
</main>
);
}
export default Test;