summaryrefslogtreecommitdiff
path: root/src/stores/style.store.ts
diff options
context:
space:
mode:
authorGravatar Corentin Thomasset <corentin.thomasset74@gmail.com> 2022-04-18 08:36:22 +0200
committerGravatar Corentin Thomasset <corentin.thomasset74@gmail.com> 2022-04-18 08:40:07 +0200
commit71f79a5bbfe0dd5451a435c0a55e8b77ee7d3848 (patch)
tree7210885186d49f07ad6c7a047547cfd1ad4aa7a8 /src/stores/style.store.ts
parent4112fa532e3d4be190d52bf3b11e0d4c3625a402 (diff)
downloadit-tools-71f79a5bbfe0dd5451a435c0a55e8b77ee7d3848.tar.gz
it-tools-71f79a5bbfe0dd5451a435c0a55e8b77ee7d3848.tar.zst
it-tools-71f79a5bbfe0dd5451a435c0a55e8b77ee7d3848.zip
fix(menu): menu auto closed on mobile
Diffstat (limited to '')
-rw-r--r--src/stores/style.store.ts28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/stores/style.store.ts b/src/stores/style.store.ts
index 79c372c..bc168f8 100644
--- a/src/stores/style.store.ts
+++ b/src/stores/style.store.ts
@@ -1,11 +1,27 @@
-import { useMediaQuery, useStorage } from '@vueuse/core';
+import { useMediaQuery, useStorage, whenever } from '@vueuse/core';
import { defineStore } from 'pinia';
import type { Ref } from 'vue';
export const useStyleStore = defineStore('style', {
- state: () => ({
- isDarkTheme: useStorage('isDarkTheme', true) as Ref<boolean>,
- isMenuCollapsed: useStorage('isMenuCollapsed', false) as Ref<boolean>,
- isSmallScreen: useMediaQuery('(max-width: 700px)'),
- }),
+ 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,
+ };
+ },
});