/
NeGaTiVe333
/
Frontend
Обзор
Документация
Войти
/
NeGaTiVe333
/
Frontend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/components/Layout.tsx
45 строк
1 KB
NeGaTiVe369
feat: стили
05 дек 2025, 19:05
05 дек 2025, 19:05
a780fa4
Код
Авторство
О чём код?
import React from "react"; import { Link, useNavigate } from "react-router-dom"; import { clearToken, getToken } from "../auth/storage"; type Props = { children: React.ReactNode; }; export const Layout: React.FC<Props> = ({ children }) => { const navigate = useNavigate(); const token = getToken(); const handleLogout = () => { clearToken(); navigate("/login", { replace: true }); }; return ( <div className="app"> <header className="app-header"> <div className="app-header-inner"> <div className="app-brand">Task Client · Lab 3</div> <nav className="app-nav"> {token && <Link to="/tasks">Задачи</Link>} {!token && <Link to="/login">Войти</Link>} {!token && <Link to="/register">Регистрация</Link>} {token && ( <button type="button" className="btn btn-secondary" onClick={handleLogout} > Выйти </button> )} </nav> </div> </header> <main className="app-main"> <div className="app-main-inner">{children}</div> </main> </div> ); };