aboutsummaryrefslogblamecommitdiff
path: root/views/layouts.templ
blob: 768a571fe971466a6b70d03ffffb0582c9f10274 (plain) (tree)
1
2
3
4
5
6
7
8
9







                                            
                






                                                                                                                                    
                                                                             







                                                                          




                                                                                                 
                                         


                                                              







                                                                                                                                              
                                                      


                                                        
                                                                                                                 











                                                                    
package views

import (
	"context"
	"gitrepo.ru/neonxp/gorum/contextlib"
	"gitrepo.ru/neonxp/gorum/models"
)

templ Layout() {
	<!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" }/>
			<link rel="stylesheet" href="/assets/css/style.css"/>
			<title>Gorum</title>
		</head>
		<body>
			<nav class="container-fluid">
				<ul>
					<li>
						<strong>Gorum BBS</strong>
					</li>
					<li>
						<a href="/">Список тем</a>
					</li>
					if isAuthorized(ctx) {
						<li><a href="/t/new">Новая тема</a></li>
					}
				</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>
			<main class="container-fluid">
				{ children... }
			</main>
			<footer class="container-fluid">
				<small>Работает на <a href="https://neonxp.ru/gorum">Gorum</a>.</small>
			</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)
}