Skip to content

Commit 61fd10f

Browse files
committed
fix: close drawer on page change
1 parent d7cafaf commit 61fd10f

4 files changed

Lines changed: 46 additions & 39 deletions

File tree

resources/js/App.vue

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,7 @@ import GlobalModal from '@/components/modals/GlobalModal.vue';
1616
1717
const toastPosition = ref<ToastPostion>();
1818
19-
const {
20-
toggleDarkMode,
21-
initDarkMode,
22-
initAmbientMode,
23-
initPlaybackHeatmap,
24-
initIsPlaylist,
25-
initPlayerModernUI,
26-
setAmbientMode,
27-
setPlaybackHeatmap,
28-
setIsPlaylist,
29-
setPlayerModernUI,
30-
} = useAppStore();
31-
const { lightMode, ambientMode, playbackHeatmap, contextMenuItems, contextMenuStyle, contextMenuItemStyle, isPlaylist, usingPlayerModernUI } = storeToRefs(useAppStore());
19+
const { contextMenuItems, contextMenuStyle, contextMenuItemStyle } = storeToRefs(useAppStore());
3220
const { isFullscreen } = useFullscreen();
3321
3422
async function loadUser() {
@@ -37,11 +25,7 @@ async function loadUser() {
3725
}
3826
3927
onMounted(async () => {
40-
initDarkMode();
41-
initAmbientMode();
42-
initPlaybackHeatmap();
43-
initIsPlaylist();
44-
initPlayerModernUI();
28+
useAppStore().initBrowserState();
4529
4630
toastPosition.value = getScreenSize() === 'default' ? 'top-center' : 'bottom-left';
4731
loadUser();
@@ -52,12 +36,6 @@ onMounted(async () => {
5236
onUnmounted(() => {
5337
window.removeEventListener('focus', loadUser);
5438
});
55-
56-
watch(ambientMode, setAmbientMode, { immediate: false });
57-
watch(lightMode, toggleDarkMode, { immediate: false });
58-
watch(playbackHeatmap, setPlaybackHeatmap, { immediate: false });
59-
watch(isPlaylist, setIsPlaylist, { immediate: false });
60-
watch(usingPlayerModernUI, setPlayerModernUI, { immediate: false });
6139
</script>
6240

6341
<template>

resources/js/components/drawers/VideoSidebarDrawer.vue

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
<script setup lang="ts">
22
import { BaseDrawer } from '@/components/cedar-ui/drawer';
3+
import { useDrawer } from '@aminnausin/cedar-ui';
4+
import { useRoute } from 'vue-router';
5+
import { watch } from 'vue';
36
47
import VideoSidebar from '@/components/panels/VideoSidebar.vue';
8+
9+
const drawer = useDrawer();
10+
const route = useRoute();
11+
12+
watch(
13+
() => route.fullPath,
14+
() => drawer.close('programmatic'),
15+
);
516
</script>
617

718
<template>

resources/js/components/panels/VideoSidebar.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
import { useAppStore } from '@/stores/AppStore';
33
import { storeToRefs } from 'pinia';
44
5-
import FolderSidebar from '@/components/panels/FolderSidebar.vue';
65
import HistorySidebar from '@/components/panels/HistorySidebar.vue';
6+
import FolderSidebar from '@/components/panels/FolderSidebar.vue';
77
88
const { selectedSideBar } = storeToRefs(useAppStore());
99
</script>

resources/js/stores/AppStore.ts

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,14 @@ export const useAppStore = defineStore('App', () => {
160160
}
161161
};
162162

163+
const initBrowserState = () => {
164+
initDarkMode();
165+
initAmbientMode();
166+
initPlaybackHeatmap();
167+
initIsPlaylist();
168+
initPlayerModernUI();
169+
};
170+
163171
watch(rawAppManifest, (v: any) => {
164172
appManifest.value = v ?? { version: 'Unversioned', commit: 'unknown' };
165173
});
@@ -168,38 +176,48 @@ export const useAppStore = defineStore('App', () => {
168176
taskWaitTimes.value = v ?? prev;
169177
});
170178

179+
watch(ambientMode, setAmbientMode, { immediate: false });
180+
watch(lightMode, toggleDarkMode, { immediate: false });
181+
watch(playbackHeatmap, setPlaybackHeatmap, { immediate: false });
182+
watch(isPlaylist, setIsPlaylist, { immediate: false });
183+
watch(usingPlayerModernUI, setPlayerModernUI, { immediate: false });
184+
171185
return {
172-
usingPlayerModernUI,
173-
initPlayerModernUI,
174-
setPlayerModernUI,
175-
initDarkMode,
176-
toggleDarkMode,
177-
lightMode,
178-
initAmbientMode,
179-
setAmbientMode,
186+
// Browser State
180187
ambientMode,
181-
initPlaybackHeatmap,
182-
setPlaybackHeatmap,
188+
lightMode,
183189
playbackHeatmap,
184-
initIsPlaylist,
185-
setIsPlaylist,
186190
isPlaylist,
191+
usingPlayerModernUI,
192+
initBrowserState,
193+
194+
// Local State
195+
isAutoPlay,
196+
197+
// Nav State
187198
cycleSideBar,
188199
selectedSideBar,
189200
sideBarTarget,
190201
pageTitle,
202+
203+
// Scroll Lock
191204
scrollLock,
192205
setScrollLock,
206+
207+
// Context Menu State
193208
contextMenuItems,
194209
contextMenuStyle,
195210
contextMenuItemStyle,
196211
contextMenuEvent,
197212
setContextMenu,
213+
214+
// Ws State
198215
createEcho,
199216
disconnectEcho,
200-
isAutoPlay,
201-
appManifest,
202217
ws,
218+
219+
// Cached Info
220+
appManifest,
203221
isLoadingWaitTimes,
204222
taskWaitTimes,
205223
};

0 commit comments

Comments
 (0)