diff --git a/src/App.svelte b/src/App.svelte index 692649c4..0444f98f 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -3,6 +3,7 @@ import { Toaster } from "svelte-french-toast"; import { bottomBarNotification, + canShowInfoPopup, draggedScrapbookItems, draggedSongs, droppedFiles, @@ -13,7 +14,9 @@ isLyricsOpen, isMiniPlayer, isQueueOpen, + isSidebarFloating, isSidebarOpen, + isSidebarShowing, isSmartQueryBuilderOpen, isTagCloudOpen, isWaveformOpen, @@ -22,8 +25,6 @@ popupOpen, selectedPlaylistFile, selectedSmartQuery, - sidebarManuallyOpened, - sidebarTogglePos, uiView, } from "./data/store"; @@ -217,9 +218,27 @@ unlistenFolderWatch(); }); - $: showCursorInfo = $draggedSongs.length > 0 && mouseX + mouseY > 0; + let showMiniPlayer = window.innerHeight <= 220 && window.innerWidth <= 210; + $: innerHeight = window.innerHeight; + $: innerWidth = window.innerWidth; $: selectedQuery = findQuery($selectedSmartQuery); + $: showCursorInfo = $draggedSongs.length > 0 && mouseX + mouseY > 0; + $: showMainPanel = innerWidth >= 300; + $: showQueue = !showMiniPlayer && (innerWidth < 460 || $isQueueOpen); + $: showSidebar = + showMiniPlayer || + (innerHeight >= 650 && + $isSidebarOpen && + ((!$isWikiOpen && innerWidth >= 660) || + ($isWikiOpen && + ((!showQueue && innerWidth >= 880) || + (showQueue && innerWidth >= 1000))))); + $: showWiki = + $isWikiOpen && + ((!showQueue && innerWidth >= 500) || (showQueue && innerWidth >= 660)); + $: isQueueAutoWidth = !showMiniPlayer && innerWidth < 520; + $: isSplitView = showMainPanel && showQueue && innerWidth < 520; $: if ($bottomBarNotification?.timeout) { setTimeout(() => { @@ -227,6 +246,18 @@ }, $bottomBarNotification.timeout); } + $: { + canShowInfoPopup.set(innerWidth >= 750); + } + + $: { + $isSidebarShowing = showSidebar; + + if (showSidebar) { + $isSidebarFloating = false; + } + } + let container: HTMLElement; let isResizing = false; let showCloseWikiPrompt = false; @@ -245,40 +276,28 @@ } function startResizeListener() { isResizing = true; + container.addEventListener("mousemove", onWikiResize); document.addEventListener("mouseup", stopResizeListener); } function stopResizeListener() { - isResizing = false; - container.removeEventListener("mousemove", onWikiResize); - if (showCloseWikiPrompt) { - $isWikiOpen = false; - showCloseWikiPrompt = false; - } - } + if (isResizing) { + isResizing = false; - function onResize() { - // If sidebar is open and width is below 400px, collapse it - if ($isSidebarOpen && window.innerWidth < 400) { - if (window.innerHeight <= 210 && window.innerWidth <= 210) { - $isSidebarOpen = true; - } else { - $isSidebarOpen = false; + container.removeEventListener("mousemove", onWikiResize); + container.removeEventListener("mouseup", stopResizeListener); + + if (showCloseWikiPrompt) { + $isWikiOpen = false; + showCloseWikiPrompt = false; } - } else if ( - !$isSidebarOpen && - $sidebarManuallyOpened && - window.innerWidth > 400 - ) { - $isSidebarOpen = true; - } else if (window.innerHeight <= 210 && window.innerWidth <= 210) { - $isSidebarOpen = true; } + } - $sidebarTogglePos = { - x: 0, - y: window.innerHeight / 2 - 30, - }; + function onResize() { + showMiniPlayer = window.innerHeight <= 220 && window.innerWidth <= 210; + innerHeight = window.innerHeight; + innerWidth = window.innerWidth; } @@ -309,36 +328,53 @@
-
- -
- -