From d1b7429b5d24715bd6f27a0bc73f0430fd64bad4 Mon Sep 17 00:00:00 2001 From: Youwes09 Date: Sat, 2 May 2026 17:23:47 -0500 Subject: [PATCH] Fix: FolderSettings Revamp & Folders (#63) --- .../library/components/LibraryToolbar.svelte | 37 +-- .../settings/sections/FoldersSettings.svelte | 283 ++++++++++++++---- 2 files changed, 233 insertions(+), 87 deletions(-) diff --git a/src/features/library/components/LibraryToolbar.svelte b/src/features/library/components/LibraryToolbar.svelte index 600dfd8..0ff15c1 100644 --- a/src/features/library/components/LibraryToolbar.svelte +++ b/src/features/library/components/LibraryToolbar.svelte @@ -19,10 +19,6 @@ visibleCategories: Category[]; counts: Record; search: string; - refreshing: boolean; - refreshProgress: { finished: number; total: number }; - refreshDone: boolean; - refreshingCatId: number | null; activeDragKind: "tab" | null; dragInsertIdx: number; dragTabId: number | null; @@ -39,9 +35,6 @@ onFiltersClear: () => void; onSortPanelToggle: () => void; onFilterPanelToggle: () => void; - onRefresh: () => void; - onCancelRefresh: () => void; - onRefreshCategory: (catId: number) => void; onOpenDownloadsFolder: () => void; onTabDragStart: (e: DragEvent, cat: Category) => void; onTabDragOver: (e: DragEvent, cat: Category, idx: number) => void; @@ -53,12 +46,12 @@ let { tab, tabSortMode, tabSortDir, tabStatus, tabFilters, hasActiveFilters, anims, tabIndicator, visibleCategories, counts, search, refreshing, - refreshProgress, refreshDone, refreshingCatId, activeDragKind, dragInsertIdx, + refreshProgress, refreshDone, activeDragKind, dragInsertIdx, dragTabId, dragOverTabId, sortPanelOpen, filterPanelOpen, tabsEl = $bindable(), onSearchChange, onTabChange, onSortChange, onSortDirToggle, onStatusChange, onFilterToggle, onFiltersClear, onSortPanelToggle, onFilterPanelToggle, - onRefresh, onCancelRefresh, onRefreshCategory, onOpenDownloadsFolder, + onRefresh, onOpenDownloadsFolder, onTabDragStart, onTabDragOver, onTabDragLeave, onTabDrop, onTabDragEnd, }: Props = $props(); @@ -118,20 +111,6 @@ {cat.name} {counts[String(cat.id)] ?? 0} - {#if tab === String(cat.id) && !refreshing} - { e.stopPropagation(); onRefreshCategory(cat.id); }} - onkeydown={(e) => { if (e.key === "Enter") { e.stopPropagation(); onRefreshCategory(cat.id); } }} - > - - - {/if} {#if dragInsertIdx === idx + 1 && activeDragKind === "tab" && idx === visibleCategories.length - 1} @@ -150,10 +129,10 @@ {#if refreshing} - {:else} - - {cat.name} - {cat.mangas?.nodes.length ?? 0} manga - - - - - - - - - {/if} - - {/each} +
+ {#each displayCats as cat} +
onDragOver(e, cat.id)} + ondrop={(e) => onDrop(e, cat.id)} + ondragleave={() => { if (dragOverId === cat.id) { dragOverId = null; dropPosition = null; } }} + > + {#if editingId === cat.id} + { if (e.key === "Enter") commitEdit(); if (e.key === "Escape") { editingId = null; } }} + onblur={commitEdit} use:focusInput /> + + {:else} + {@const isDefault = (store.settings.defaultLibraryCategoryId ?? null) === cat.id} + {@const isHidden = (store.settings.hiddenCategoryIds ?? []).includes(cat.id)} + {@const inUpdate = cat.includeInUpdate !== false} + {@const inDl = cat.includeInDownload !== false} + +
onDragStart(e, cat.id)} + ondragend={onDragEnd}> + + + + + { e.stopPropagation(); startEdit(cat.id, cat.name); }} title="Click to rename"> + {cat.name} + +
+ + {cat.mangas?.nodes.length ?? 0} manga + +
+ + + + + + + + + +
+ {/if} +
+ {/each} +
{/if} + - \ No newline at end of file + \ No newline at end of file