- -
- -
- - - -
- - -
-
- - - -
- - + +
+ + +
+
- - - - @@ -602,6 +609,16 @@ const selectedItem = computed(() => { return null }) +const isDetailOpen = computed(() => selectedItem.value !== null) +const lastDetailItem = ref(null) +const detailItemForRender = computed(() => selectedItem.value ?? lastDetailItem.value) + +watch(selectedItem, (item) => { + if (item) { + lastDetailItem.value = item + } +}) + // Show detail by navigating to URL (clears search) function showDetail(item: MediaItem) { // Save the item ID to restore focus when returning @@ -1237,4 +1254,36 @@ async function handleOpenFolder(folderPath: string, explicitRootId?: string | nu color: var(--text-secondary); font-size: 2rem; } + +.page-slider { + width: 100vw; + overflow-x: hidden; +} + +.page-slider-track { + display: flex; + width: 200vw; + transition: transform 420ms cubic-bezier(0.22, 0.61, 0.36, 1); + will-change: transform; +} + +.page-slider-track.is-detail-open { + transform: translate3d(-100vw, 0, 0); +} + +.page-slider-panel { + flex: 0 0 100vw; + width: 100vw; + min-width: 100vw; +} + +.page-slider-detail-panel { + background: var(--bg-primary); +} + +@media (prefers-reduced-motion: reduce) { + .page-slider-track { + transition: none; + } +}