Fixed dark theme now applying on the first time
This commit is contained in:
@@ -3,29 +3,43 @@ import { RouterView } from 'vue-router';
|
|||||||
import SidebarComponent from '@components/sidebar/SidebarComponent.vue';
|
import SidebarComponent from '@components/sidebar/SidebarComponent.vue';
|
||||||
import {onMounted, provide, ref } from 'vue';
|
import {onMounted, provide, ref } from 'vue';
|
||||||
|
|
||||||
|
const theme = ref( getTheme() );
|
||||||
|
provide('theme', theme );
|
||||||
|
|
||||||
onMounted( ()=> {
|
onMounted( ()=> {
|
||||||
switch( localStorage.theme ) {
|
if (localStorage.theme)
|
||||||
case "dark":{
|
selectThemeFromLocalStorage();
|
||||||
document.documentElement.classList.add('dark');
|
else if (browserPrefersDarkMode()) {
|
||||||
break;
|
setDarkTheme();
|
||||||
}
|
}
|
||||||
case "light":{
|
|
||||||
document.documentElement.classList.remove('dark');
|
|
||||||
}}
|
|
||||||
theme.value = localStorage.theme;
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const theme = ref( getTheme() );
|
function setDarkTheme() {
|
||||||
provide('theme', theme );
|
document.documentElement.classList.add('dark');
|
||||||
|
theme.value = "dark";
|
||||||
|
localStorage.setItem("theme", "dark");
|
||||||
|
}
|
||||||
|
|
||||||
function setTheme(newTheme : string){
|
function selectThemeFromLocalStorage() {
|
||||||
theme.value = newTheme;
|
if (localStorage.theme == "dark")
|
||||||
}
|
document.documentElement.classList.add('dark');
|
||||||
|
else
|
||||||
|
document.documentElement.classList.remove('dark');
|
||||||
|
|
||||||
function getTheme(){
|
theme.value = localStorage.theme;
|
||||||
return localStorage.theme;
|
}
|
||||||
}
|
|
||||||
|
function browserPrefersDarkMode(){
|
||||||
|
return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setTheme(newTheme : string){
|
||||||
|
theme.value = newTheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getTheme(){
|
||||||
|
return localStorage.theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -18,7 +18,10 @@ function changeLogoForTheme(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isDarkModeSet(){
|
function isDarkModeSet(){
|
||||||
return localStorage.theme == "dark";
|
if (localStorage.theme)
|
||||||
|
return localStorage.theme == "dark";
|
||||||
|
else
|
||||||
|
return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeTheme(theme:string){
|
function changeTheme(theme:string){
|
||||||
|
|||||||
Reference in New Issue
Block a user