diff --git a/src/components/MenuLayout.vue b/src/components/MenuLayout.vue
index f5db7003..721a14d7 100644
--- a/src/components/MenuLayout.vue
+++ b/src/components/MenuLayout.vue
@@ -9,8 +9,6 @@
:show-trigger="false"
:native-scrollbar="false"
:position="siderPosition"
- @collapse="isMenuCollapsed = true"
- @expand="isMenuCollapsed = false"
>
@@ -36,24 +34,24 @@ const siderPosition = computed(() => isSmallScreen.value ? 'absolute' : 'static'
\ No newline at end of file
diff --git a/src/stores/style.store.ts b/src/stores/style.store.ts
index 79c372cf..bc168f8a 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,
- isMenuCollapsed: useStorage('isMenuCollapsed', false) as Ref,
- isSmallScreen: useMediaQuery('(max-width: 700px)'),
- }),
+ state: () => {
+ const isDarkTheme = useStorage('isDarkTheme', true) as Ref;
+ const isSmallScreen = useMediaQuery('(max-width: 700px)');
+ const isMenuCollapsed = useStorage('isMenuCollapsed', !isSmallScreen.value) as Ref;
+
+ whenever(
+ () => !isSmallScreen.value,
+ () => (isMenuCollapsed.value = false)
+ );
+
+ whenever(
+ () => isSmallScreen.value,
+ () => (isMenuCollapsed.value = true)
+ );
+
+ return {
+ isDarkTheme,
+ isMenuCollapsed,
+ isSmallScreen,
+ };
+ },
});