85 lines
1.5 KiB
Vue
85 lines
1.5 KiB
Vue
<template>
|
|
<PageHeader />
|
|
<main :class="[loggedInUserDarkModeBoolean ? 'main-darkmode' : 'main-lightmode']">
|
|
<slot />
|
|
</main>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
import { ref, onMounted, watch } from 'vue';
|
|
|
|
import PageHeader from "../layouts/PageHeader.vue";
|
|
import { useStore } from 'vuex';
|
|
import { computed } from 'vue';
|
|
|
|
const route = useRoute()
|
|
const id = computed(() => route)
|
|
|
|
const store = useStore();
|
|
const modeChangedLocalstorage = computed(() => store.state.modeLayout);
|
|
|
|
const loggedInUserDarkModeBoolean = ref('');
|
|
|
|
const getSession = async () => {
|
|
if (modeChangedLocalstorage.value) {
|
|
store.commit('resetModeLayoutChanged');
|
|
}
|
|
const loggedInUserDarkModeBool = getItem('logged-in-user-darkMode');
|
|
if (loggedInUserDarkModeBool == 1) {
|
|
loggedInUserDarkModeBoolean.value = true;
|
|
} else {
|
|
loggedInUserDarkModeBoolean.value = false;
|
|
}
|
|
if (id.value.fullPath == '/login') {
|
|
loggedInUserDarkModeBoolean.value = true;
|
|
}
|
|
}
|
|
|
|
function getItem(item) {
|
|
if (process.client) {
|
|
return localStorage.getItem(item)
|
|
} else {
|
|
return undefined
|
|
}
|
|
}
|
|
|
|
watch(modeChangedLocalstorage, getSession);
|
|
|
|
onMounted(async () => {
|
|
await getSession();
|
|
});
|
|
</script>
|
|
|
|
<script>
|
|
export default {
|
|
name: "empty",
|
|
}
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
|
|
main {
|
|
display: flex;
|
|
flex-direction: row;
|
|
gap: 0.625rem;
|
|
padding: 0.625rem 1.5625rem 0.625rem 0.625rem;
|
|
height: 100vh;
|
|
width: 100vw;
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
|
|
.main-darkmode {
|
|
background-color: #212121;
|
|
}
|
|
|
|
.main-lightmode {
|
|
background-color: #EBEBEB;
|
|
}
|
|
</style> |