feat: leaner note creation — immediate Untitled note, no dialog

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
lucaronin
2026-02-22 11:38:03 +01:00
68 changed files with 36655 additions and 30 deletions

View File

@@ -357,6 +357,15 @@ export const Editor = memo(function Editor({
tabPathsRef.current = currentPaths
}, [tabs])
// Focus editor when a new note is created (signaled via custom event)
useEffect(() => {
const handler = () => {
setTimeout(() => editor.focus(), 150)
}
window.addEventListener('laputa:focus-editor', handler)
return () => window.removeEventListener('laputa:focus-editor', handler)
}, [editor])
const activeTab = tabs.find((t) => t.entry.path === activeTabPath) ?? null
const isLoadingNewTab = activeTabPath !== null && !activeTab
const showDiffToggle = activeTab && (diffMode || isModified?.(activeTab.entry.path))

View File

@@ -240,7 +240,7 @@ function NoteListInner({ entries, selection, selectedNote, allContent, modifiedF
<button className="flex items-center text-muted-foreground transition-colors hover:text-foreground" onClick={() => { setSearchVisible(!searchVisible); if (searchVisible) setSearch('') }} title="Search notes">
<MagnifyingGlass size={16} />
</button>
<button className="flex items-center text-muted-foreground transition-colors hover:text-foreground" onClick={onCreateNote} title="Create new note">
<button className="flex items-center text-muted-foreground transition-colors hover:text-foreground" onClick={() => onCreateNote()} title="Create new note">
<Plus size={16} />
</button>
</div>

View File

@@ -144,7 +144,7 @@ function TabBarActions({ onCreateNote }: { onCreateNote?: () => void }) {
gap: 12, padding: '0 12px', WebkitAppRegion: 'no-drag',
} as React.CSSProperties}
>
<button className="flex items-center justify-center border-none bg-transparent p-0 text-muted-foreground cursor-pointer hover:text-foreground transition-colors" onClick={onCreateNote} title="New note">
<button className="flex items-center justify-center border-none bg-transparent p-0 text-muted-foreground cursor-pointer hover:text-foreground transition-colors" onClick={() => onCreateNote?.()} title="New note">
<Plus size={16} />
</button>
<button className="flex items-center justify-center border-none bg-transparent p-0 text-muted-foreground" style={DISABLED_ICON_STYLE} title="Coming soon" tabIndex={-1}>