From 2e90053b4889c57aba4045e482c3080612bc0550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=95=9C=EB=8F=99=ED=98=84?= <hando1220@ajou.ac.kr> Date: Fri, 28 Feb 2025 00:59:43 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=A6=AC=EC=95=A1=ED=8A=B8=20=EB=9D=BC?= =?UTF-8?q?=EC=9A=B0=ED=84=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + pnpm-lock.yaml | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/main.tsx | 10 +++++++++- src/pages/Root.tsx | 10 ++++++++++ src/routes.tsx | 10 ++++++++++ 5 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 src/pages/Root.tsx create mode 100644 src/routes.tsx diff --git a/package.json b/package.json index 2835195..1e24ec8 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "lucide-react": "^0.476.0", "react": "^19.0.0", "react-dom": "^19.0.0", + "react-router": "^7.2.0", "tailwind-merge": "^3.0.2", "tailwindcss": "^4.0.9", "tailwindcss-animate": "^1.0.7" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c71a829..0ffd613 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,9 @@ importers: react-dom: specifier: ^19.0.0 version: 19.0.0(react@19.0.0) + react-router: + specifier: ^7.2.0 + version: 7.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tailwind-merge: specifier: ^3.0.2 version: 3.0.2 @@ -539,6 +542,9 @@ packages: peerDependencies: vite: ^5.2.0 || ^6 + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -666,6 +672,10 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -1026,6 +1036,16 @@ packages: peerDependencies: react: ^19.0.0 + react-router@7.2.0: + resolution: {integrity: sha512-fXyqzPgCPZbqhrk7k3hPcCpYIlQ2ugIXDboHUzhJISFVy2DEPsmHgN588MyGmkIOv3jDgNfUE3kJi83L28s/LQ==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true + react@19.0.0: resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} @@ -1054,6 +1074,9 @@ packages: engines: {node: '>=10'} hasBin: true + set-cookie-parser@2.7.1: + resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -1099,6 +1122,9 @@ packages: peerDependencies: typescript: '>=4.8.4' + turbo-stream@2.4.0: + resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -1488,6 +1514,8 @@ snapshots: tailwindcss: 4.0.9 vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1) + '@types/cookie@0.6.0': {} + '@types/estree@1.0.6': {} '@types/json-schema@7.0.15': {} @@ -1643,6 +1671,8 @@ snapshots: concat-map@0.0.1: {} + cookie@1.0.2: {} + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -1991,6 +2021,16 @@ snapshots: react: 19.0.0 scheduler: 0.25.0 + react-router@7.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@types/cookie': 0.6.0 + cookie: 1.0.2 + react: 19.0.0 + set-cookie-parser: 2.7.1 + turbo-stream: 2.4.0 + optionalDependencies: + react-dom: 19.0.0(react@19.0.0) + react@19.0.0: {} resolve-from@4.0.0: {} @@ -2030,6 +2070,8 @@ snapshots: semver@7.7.1: {} + set-cookie-parser@2.7.1: {} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -2062,6 +2104,8 @@ snapshots: dependencies: typescript: 5.7.3 + turbo-stream@2.4.0: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 diff --git a/src/main.tsx b/src/main.tsx index 9e96aa0..15df11e 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,5 +1,13 @@ import { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; +import { BrowserRouter } from 'react-router'; +import AppRoutes from './routes'; import './index.css'; -createRoot(document.getElementById('root')!).render(<StrictMode></StrictMode>); +createRoot(document.getElementById('root')!).render( + <StrictMode> + <BrowserRouter> + <AppRoutes /> + </BrowserRouter> + </StrictMode> +); diff --git a/src/pages/Root.tsx b/src/pages/Root.tsx new file mode 100644 index 0000000..79e920e --- /dev/null +++ b/src/pages/Root.tsx @@ -0,0 +1,10 @@ +import { Outlet } from 'react-router'; + +export default function Root() { + return ( + <div> + <h1>Proxy Manager</h1> + <Outlet /> + </div> + ); +} diff --git a/src/routes.tsx b/src/routes.tsx new file mode 100644 index 0000000..b0087c1 --- /dev/null +++ b/src/routes.tsx @@ -0,0 +1,10 @@ +import { Routes, Route } from 'react-router'; +import Root from '@/pages/Root'; + +export default function AppRoutes() { + return ( + <Routes> + <Route path="/" element={<Root />}></Route> + </Routes> + ); +} -- GitLab