Create notes from empty list double-click (#175)

Double-clicking empty space in the notes list now creates a new note. The notebook sidebar double-click shortcut is scoped to the notebook section so adjacent panes do not trigger notebook creation.

Reviewed-on: https://codeberg.org/ArkHost/HelixNotes/pulls/175
This commit is contained in:
mf
2026-06-26 23:59:54 +02:00
committed by ArkHost
parent 7e63d721bc
commit d2100c8500
2 changed files with 13 additions and 3 deletions
+10 -1
View File
@@ -449,6 +449,14 @@
} }
} }
function handleListDoubleClick(e: MouseEvent) {
const target = e.target as HTMLElement | null;
if (target?.closest('button, input, .note-item, .context-menu, .sort-menu, .batch-move-picker, .cal')) return;
e.stopPropagation();
if ($viewMode === 'tasks' || $viewMode === 'trash') return;
handleCreateNote();
}
async function handleRename(note: NoteEntry) { async function handleRename(note: NoteEntry) {
if (!editValue.trim() || editValue.trim() === note.meta.title) { if (!editValue.trim() || editValue.trim() === note.meta.title) {
editingNote = null; editingNote = null;
@@ -1079,7 +1087,8 @@
</div> </div>
{/if} {/if}
<div class="list-content" bind:this={listContainer} onscroll={onListScroll}> <!-- svelte-ignore a11y_no_static_element_interactions -->
<div class="list-content" bind:this={listContainer} onscroll={onListScroll} ondblclick={handleListDoubleClick}>
{#if $viewMode === 'tasks'} {#if $viewMode === 'tasks'}
<TasksView onOpenTask={openTask} onToggleTask={onToggleTask} onSetTaskPriority={onSetTaskPriority} onSetTaskDue={onSetTaskDue} /> <TasksView onOpenTask={openTask} onToggleTask={onToggleTask} onSetTaskPriority={onSetTaskPriority} onSetTaskDue={onSetTaskDue} />
{/if} {/if}
+3 -2
View File
@@ -636,7 +636,7 @@
<svelte:window onclick={handleWindowClick} /> <svelte:window onclick={handleWindowClick} />
<aside class="sidebar" class:collapsed={$sidebarCollapsed} class:mobile={isMobile} class:nav-empty={!anyNavItem} ondblclick={startNewNotebookFromSidebar}> <aside class="sidebar" class:collapsed={$sidebarCollapsed} class:mobile={isMobile} class:nav-empty={!anyNavItem}>
{#if !isMobile} {#if !isMobile}
<div class="sidebar-header"> <div class="sidebar-header">
<button class="collapse-btn" onclick={() => ($sidebarCollapsed = !$sidebarCollapsed)} title="Toggle sidebar"> <button class="collapse-btn" onclick={() => ($sidebarCollapsed = !$sidebarCollapsed)} title="Toggle sidebar">
@@ -733,7 +733,8 @@
</nav> </nav>
{/if} {/if}
<div class="section"> <!-- svelte-ignore a11y_no_static_element_interactions -->
<div class="section" ondblclick={startNewNotebookFromSidebar}>
<!-- svelte-ignore a11y_no_static_element_interactions --> <!-- svelte-ignore a11y_no_static_element_interactions -->
<div <div
class="section-header" class="section-header"