diff --git a/src/page.rs b/src/page.rs index c73454b..d82db7d 100644 --- a/src/page.rs +++ b/src/page.rs @@ -36,6 +36,12 @@ pub fn new(content: Markup) -> Markup { li { span id="theme_switcher" {} } + + li { + button id="language_toogle" lang="en" { + "DE" + } + } } } } diff --git a/static/serve/theme.js b/static/serve/theme.js index 11a799c..d7bc180 100644 --- a/static/serve/theme.js +++ b/static/serve/theme.js @@ -1,31 +1,50 @@ -let isLight = true; -if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches){ - isLight = false +document.addEventListener('DOMContentLoaded', () => { + switchTheme(); + setLanguageCookie(); +}) + +function setLanguageCookie() { + let langToggle = document.getElementById('language_toogle'); + + langToggle.addEventListener('click', (e)=> { + e.preventDefault(); + let lang = langToggle.getAttribute('lang'); + document.cookie = "language=" + lang; + window.location.reload(); + }) } -const html = document.documentElement -const switchTheme = document.getElementById('theme_switcher') -const os_default = '' -const sun = '' -const moon = '' +/** [ph] */ +function switchTheme() { + let isLight = true; + if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches){ + isLight = false + } + + const html = document.documentElement + const switchTheme = document.getElementById('theme_switcher') + const os_default = '' + const sun = '' + const moon = '' + const removeTooltip = (timeInt = 1750) => { + setTimeout(()=>{ + switchTheme.blur() + },timeInt) + } -document.addEventListener('DOMContentLoaded', () => { switchTheme.innerHTML = os_default //html.setAttribute('data-theme', 'auto') switchTheme.setAttribute('data-tooltip', 'os theme') switchTheme.focus() removeTooltip(3000) -}) -switchTheme.addEventListener('click', (e)=> { - e.preventDefault() - isLight = !isLight - html.setAttribute('data-theme', isLight? 'light':'dark') - switchTheme.innerHTML = isLight? sun : moon - switchTheme.setAttribute('data-tooltip', `theme ${isLight?'light':'dark'}`) - removeTooltip() -}) -const removeTooltip = (timeInt = 1750) => { - setTimeout(()=>{ - switchTheme.blur() - },timeInt) + + switchTheme.addEventListener('click', (e)=> { + e.preventDefault() + isLight = !isLight + html.setAttribute('data-theme', isLight? 'light':'dark') + switchTheme.innerHTML = isLight? sun : moon + switchTheme.setAttribute('data-tooltip', `theme ${isLight?'light':'dark'}`) + removeTooltip() + }) } +