diff --git a/web/src/lib/components/layout/Sidebar.svelte b/web/src/lib/components/layout/Sidebar.svelte index a830b966..b31357c6 100644 --- a/web/src/lib/components/layout/Sidebar.svelte +++ b/web/src/lib/components/layout/Sidebar.svelte @@ -108,8 +108,10 @@ // Watch for Cmd-N quick-add requests from the layout $effect(() => { if (uiStore.quickAddRequested) { + const targetSlug = uiStore.quickAddTargetSlug; uiStore.clearQuickAddRequest(); - const target = activeColl + const target = (targetSlug ? regularCollections.find(c => c.slug === targetSlug) : null) + ?? activeColl ?? regularCollections.find(c => c.slug === 'tasks') ?? regularCollections[0]; if (target) startQuickAdd(target); diff --git a/web/src/lib/stores/ui.svelte.ts b/web/src/lib/stores/ui.svelte.ts index 6fda89b5..a8892115 100644 --- a/web/src/lib/stores/ui.svelte.ts +++ b/web/src/lib/stores/ui.svelte.ts @@ -8,6 +8,7 @@ let isTouch = $state(browser ? 'ontouchstart' in window : false); let detailPanelOpen = $state(browser ? localStorage.getItem('pad-detail-panel') !== 'closed' && window.innerWidth > 768 : false); let createWorkspaceOpen = $state(false); let quickAddRequested = $state(false); +let quickAddTargetSlug = $state(null); if (browser) { window.addEventListener('resize', () => { @@ -71,8 +72,9 @@ export const uiStore = { // Quick-add item trigger — sidebar watches this get quickAddRequested() { return quickAddRequested; }, - requestQuickAdd() { quickAddRequested = true; }, - clearQuickAddRequest() { quickAddRequested = false; }, + get quickAddTargetSlug() { return quickAddTargetSlug; }, + requestQuickAdd(collectionSlug?: string) { quickAddTargetSlug = collectionSlug ?? null; quickAddRequested = true; }, + clearQuickAddRequest() { quickAddRequested = false; quickAddTargetSlug = null; }, /** Close sidebar on mobile after navigation */ onNavigate() { diff --git a/web/src/routes/[username]/[workspace]/+page.svelte b/web/src/routes/[username]/[workspace]/+page.svelte index 533e5840..03ad6eae 100644 --- a/web/src/routes/[username]/[workspace]/+page.svelte +++ b/web/src/routes/[username]/[workspace]/+page.svelte @@ -78,6 +78,7 @@ } let totalItems = $derived(dashboard?.summary.total_items ?? 0); + let firstCollection = $derived(collections.filter(c => !c.is_system && c.slug !== 'tasks').sort((a, b) => a.sort_order - b.sort_order)[0]); function statusColor(status: string): string { const s = status.toLowerCase().replace(/-/g, '_'); @@ -176,8 +177,10 @@ {totalItems} item{totalItems !== 1 ? 's' : ''}
- - + {#if firstCollection} + + {/if} +