написал структуру проекта и навигацию

This commit is contained in:
2025-10-23 01:20:35 +03:00
parent 8ba28366bc
commit 172d6a68b4
14 changed files with 143 additions and 3 deletions
+56 -1
View File
@@ -9,7 +9,9 @@
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"react": "^19.1.1", "react": "^19.1.1",
"react-dom": "^19.1.1" "react-dom": "^19.1.1",
"react-router": "^7.9.4",
"react-router-dom": "^7.9.4"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.36.0", "@eslint/js": "^9.36.0",
@@ -1963,6 +1965,15 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/cookie": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz",
"integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/cross-spawn": { "node_modules/cross-spawn": {
"version": "7.0.6", "version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
@@ -2934,6 +2945,44 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/react-router": {
"version": "7.9.4",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.4.tgz",
"integrity": "sha512-SD3G8HKviFHg9xj7dNODUKDFgpG4xqD5nhyd0mYoB5iISepuZAvzSr8ywxgxKJ52yRzf/HWtVHc9AWwoTbljvA==",
"license": "MIT",
"dependencies": {
"cookie": "^1.0.1",
"set-cookie-parser": "^2.6.0"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"react": ">=18",
"react-dom": ">=18"
},
"peerDependenciesMeta": {
"react-dom": {
"optional": true
}
}
},
"node_modules/react-router-dom": {
"version": "7.9.4",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.9.4.tgz",
"integrity": "sha512-f30P6bIkmYvnHHa5Gcu65deIXoA2+r3Eb6PJIAddvsT9aGlchMatJ51GgpU470aSqRRbFX22T70yQNUGuW3DfA==",
"license": "MIT",
"dependencies": {
"react-router": "7.9.4"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"react": ">=18",
"react-dom": ">=18"
}
},
"node_modules/resolve-from": { "node_modules/resolve-from": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -3037,6 +3086,12 @@
"semver": "bin/semver.js" "semver": "bin/semver.js"
} }
}, },
"node_modules/set-cookie-parser": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz",
"integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==",
"license": "MIT"
},
"node_modules/shebang-command": { "node_modules/shebang-command": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+3 -1
View File
@@ -11,7 +11,9 @@
}, },
"dependencies": { "dependencies": {
"react": "^19.1.1", "react": "^19.1.1",
"react-dom": "^19.1.1" "react-dom": "^19.1.1",
"react-router": "^7.9.4",
"react-router-dom": "^7.9.4"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.36.0", "@eslint/js": "^9.36.0",
+20
View File
@@ -0,0 +1,20 @@
import LoginPage from "../pages/LoginPage/LoginPage"
import DashboardPage from "../pages/DashboardPage/DashboardPage"
import Layout from "../pages/Layout/Layout";
import HistoryPage from "../pages/HistoryPage/HistoryPage";
import { Routes } from "react-router";
import { Route } from "react-router";
function AppRoutes() {
return (
<Routes>
{/*<Route path="/login" element={<LoginPage />} />*/}
<Route path="/" element={<Layout />}>
<Route index element={<DashboardPage />} />
<Route path="history" element={<HistoryPage />} />
</Route>
</Routes>
)
}
export default AppRoutes;
+5 -1
View File
@@ -2,9 +2,13 @@ import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client' import { createRoot } from 'react-dom/client'
import './index.css' import './index.css'
import App from './App.tsx' import App from './App.tsx'
import { BrowserRouter } from 'react-router'
import AppRoutes from './app/routes.tsx'
createRoot(document.getElementById('root')!).render( createRoot(document.getElementById('root')!).render(
<StrictMode> <StrictMode>
<App /> <BrowserRouter>
<AppRoutes />
</BrowserRouter>
</StrictMode>, </StrictMode>,
) )
@@ -0,0 +1,9 @@
const DashboardPage = () =>{
return(
<>
<p>ssssssssss</p>
</>
)
}
export default DashboardPage;
@@ -0,0 +1,9 @@
const HistoryPage = () =>{
return(
<>
<p>dddddddd</p>
</>
)
}
export default HistoryPage;
View File
+17
View File
@@ -0,0 +1,17 @@
import Header from "../../widgets/Header/Header";
import { Outlet } from "react-router";
const Layout = () =>{
return(
<div className="dashboard">
<div className="content-wrapper">
<Header />
<main className="content">
<Outlet />
</main>
</div>
</div>
);
};
export default Layout;
+9
View File
@@ -0,0 +1,9 @@
const LoginPage = () =>{
return(
<>
</>
)
}
export default LoginPage;
View File
+15
View File
@@ -0,0 +1,15 @@
import { NavLink } from "react-router";
const Header = () =>{
return(
<nav className="header">
<div className="account-menu">
<NavLink to="/" end >Главная</NavLink>
<NavLink to="history" >История</NavLink>
<NavLink to="login" >Выход</NavLink>
</div>
</nav>
)
}
export default Header;