summaryrefslogtreecommitdiff
path: root/frontend/src/components/Header.ts
diff options
context:
space:
mode:
authorLeo Goetz <dev@leogtz.de>2026-01-22 09:10:15 +0100
committerLeo Goetz <dev@leogtz.de>2026-01-22 09:10:15 +0100
commit01c0f792484f8f52606eae0e58abe528acef3086 (patch)
treee30894caf65b39aab1e050035f63450b5032123c /frontend/src/components/Header.ts
parentb6d422d33c3b647ab249a8cf3520bc986fa2c549 (diff)
feat: completed course, added some types and changed output to dist folderHEADmaster
Diffstat (limited to 'frontend/src/components/Header.ts')
-rw-r--r--frontend/src/components/Header.ts40
1 files changed, 40 insertions, 0 deletions
diff --git a/frontend/src/components/Header.ts b/frontend/src/components/Header.ts
new file mode 100644
index 0000000..11da46f
--- /dev/null
+++ b/frontend/src/components/Header.ts
@@ -0,0 +1,40 @@
+import { Theme as ThemeIcon } from "./Icons";
+
+const themeToggleId = "theme";
+
+const Header = `
+<header>
+ <hgroup>
+ <h1 class=".parkinsans">event me</h1>
+ <p>All the events you never knew you needed to attend!</p>
+ </hgroup>
+ <a href="#" role="toggle" id="${themeToggleId}" title="Toggle color scheme" >
+ ${ThemeIcon}
+ </a>
+</header>
+`;
+
+type Theme = "dark" | "light";
+
+const toggleDarkMode = () => {
+ const doc = document.documentElement;
+ const currentTheme = doc.getAttribute("data-theme");
+ let newTheme: Theme;
+ if (currentTheme === "dark") {
+ newTheme = "light";
+ doc.setAttribute("data-theme", newTheme);
+ } else if (currentTheme === "light") {
+ newTheme = "dark";
+ doc.setAttribute("data-theme", newTheme);
+ }
+};
+export function setupThemeToggle() {
+ const themeToggle = document.getElementById(themeToggleId);
+ if (!themeToggle) {
+ console.error("Missing Toggle");
+ return;
+ }
+ themeToggle.addEventListener("click", toggleDarkMode);
+}
+
+export default Header;