frontend part

This commit is contained in:
2026-09-22 15:21:18 +03:00
parent 8d31078e3d
commit 608e7ce0f0
18 changed files with 1545 additions and 0 deletions
View File
+13
View File
@@ -0,0 +1,13 @@
import './App.css'
import { Route, Routes } from "react-router-dom";
import { LoginPage } from "./pages/LoginPage";
function App() {
return (
<Routes>
<Route path="/" element={<LoginPage />} />
</Routes>
);
}
export default App
@@ -0,0 +1,38 @@
import { useState, type ReactElement } from "react";
import { Link } from "react-router-dom";
import "./AuthComponent.css";
export function Auth():ReactElement {
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [rememberMe, setRememberMe] = useState(false);
return (
<form>
<input
type="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
placeholder="Email"
required
/>
<input
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
placeholder="Password"
required
/>
<label>
<input
type="checkbox"
checked={rememberMe}
onChange={(e) => setRememberMe(e.target.checked)}
/>
Запомнить меня
</label>
<Link to="/forgot-password">Забыли пароль?</Link>
<button type="submit">Войти</button>
</form>
);
}
View File
+13
View File
@@ -0,0 +1,13 @@
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import { BrowserRouter } from 'react-router-dom'
import './index.css'
import App from './App.tsx'
createRoot(document.getElementById('root')!).render(
<StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</StrictMode>,
)
+9
View File
@@ -0,0 +1,9 @@
import { Auth } from "../features/auth/components/AuthComponent";
export function LoginPage(){
return(
<>
<Auth />
</>
);
}
+25
View File
@@ -0,0 +1,25 @@
interface PermissionsOut {
id: number
permission: string
}
interface PermissionsGroupsOut {
id: number
group: string
permissions: PermissionsOut[]
}
export interface UserOut {
first_name: string
last_name: string
middle_name: string
email: string
direct_permissions: PermissionsOut[]
group: PermissionsGroupsOut[]
}
export interface UserIn {
email: string
plain_password:string
}