gorum/views/layouts.templ

60 lines
1.5 KiB
Text
Raw Permalink Normal View History

2024-07-20 21:56:37 +03:00
package views
import (
"context"
"gitrepo.ru/neonxp/gorum/contextlib"
"gitrepo.ru/neonxp/gorum/models"
)
2024-07-29 02:47:35 +03:00
templ Layout() {
2024-07-20 21:56:37 +03:00
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="color-scheme" content="light dark"/>
<link rel="stylesheet" href={ "/assets/css/pico." + ctx.Value(contextlib.ThemeKey).(string) + ".min.css" }/>
2024-07-21 19:26:56 +03:00
<link rel="stylesheet" href="/assets/css/style.css"/>
2024-07-20 21:56:37 +03:00
<title>Gorum</title>
</head>
<body>
<nav class="container-fluid">
<ul>
<li>
<strong>Gorum BBS</strong>
</li>
2024-07-29 02:47:35 +03:00
<li>
<a href="/">Список тем</a>
</li>
if isAuthorized(ctx) {
<li><a href="/t/new">Новая тема</a></li>
2024-07-21 19:26:56 +03:00
}
2024-07-20 21:56:37 +03:00
</ul>
<ul>
if isAuthorized(ctx) {
<li>{ getUser(ctx).Username }</li>
<li><form action="/logout" method="POST"><input type="submit" value="Выход"/></form></li>
} else {
<li><a href="/login">Вход</a></li>
<li><a href="/register">Регистрация</a></li>
}
</ul>
</nav>
2024-07-29 02:47:35 +03:00
<main class="container-fluid">
2024-07-20 21:56:37 +03:00
{ children... }
</main>
<footer class="container-fluid">
2024-07-21 19:26:56 +03:00
<small>Работает на <a href="https://neonxp.ru/gorum">Gorum</a>.</small>
2024-07-20 21:56:37 +03:00
</footer>
</body>
</html>
}
func isAuthorized(ctx context.Context) bool {
_, authorized := ctx.Value(contextlib.UserKey).(models.User)
return authorized
}
func getUser(ctx context.Context) models.User {
return ctx.Value(contextlib.UserKey).(models.User)
}