blob: bd8c082fd60ae55560558cac08ecc6d0f3dd9f5f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package template
import "git.thomasvoss.com/euro-cash.eu/lib"
templ Base(body templ.Component) {
{{ p := ctx.Value("printer").(lib.Printer) }}
<!DOCTYPE html>
<html lang={ p.Locale.Bcp }>
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="stylesheet" type="text/css" href="/style.css"/>
<title>Euro Cash</title>
<script type="text/javascript">
const $ = q => document.querySelector(q);
const $$ = q => document.querySelectorAll(q);
const validate = theme =>
["light", "dark"].includes(theme) ? theme : "light";
const toggle = theme =>
theme == "light" ? "dark" : "light";
const setTheme = theme => {
localStorage.setItem("theme", theme);
$("html").setAttribute("data-theme", theme);
$(`#nav-icon-theme-${theme}`)
.style.display = "";
$(`#nav-icon-theme-${toggle(theme)}`)
.style.display = "none";
};
document.addEventListener('DOMContentLoaded', _ => {
$("#theme-button").onclick = () =>
setTheme(toggle(validate(localStorage.getItem("theme"))));
setTheme(validate(localStorage.getItem("theme")));
});
</script>
</head>
<body>
@body
<footer>
<p>
<small>
{ p.T("Found a mistake or want to contribute missing information?") }
<a href="/">{ p.T("Feel free to contact us!") }</a>
</small>
</p>
</footer>
</body>
</html>
}
|