it-tools/src/stores/style.store.ts

28 lines
731 B
TypeScript
Raw Normal View History

2022-04-18 08:36:22 +02:00
import { useMediaQuery, useStorage, whenever } from '@vueuse/core';
2022-04-04 01:52:59 +02:00
import { defineStore } from 'pinia';
import type { Ref } from 'vue';
2022-04-04 01:52:59 +02:00
export const useStyleStore = defineStore('style', {
2022-04-18 08:36:22 +02:00
state: () => {
const isDarkTheme = useStorage('isDarkTheme', true) as Ref<boolean>;
const isSmallScreen = useMediaQuery('(max-width: 700px)');
const isMenuCollapsed = useStorage('isMenuCollapsed', !isSmallScreen.value) as Ref<boolean>;
whenever(
() => !isSmallScreen.value,
() => (isMenuCollapsed.value = false)
);
whenever(
() => isSmallScreen.value,
() => (isMenuCollapsed.value = true)
);
return {
isDarkTheme,
isMenuCollapsed,
isSmallScreen,
};
},
});