diff --git a/internal/tui/newnote_mode_test.go b/internal/tui/newnote_mode_test.go new file mode 100644 index 0000000..0d6aceb --- /dev/null +++ b/internal/tui/newnote_mode_test.go @@ -0,0 +1,22 @@ +package tui + +import ( + "testing" + + "github.com/ZenNotes/tui/internal/vault" +) + +// A freshly created note is entered in insert mode, so it must show the +// editor even when the default pane mode is preview. +func TestCreateNoteOpensInEditMode(t *testing.T) { + a, _ := newFeatureTestApp(t) + a.prefs.DefaultPaneMode = string(modePreview) + a.createNote(vault.FolderInbox, "Fresh", "", nil, true) + tb := a.activeTab() + if tb == nil { + t.Fatal("no active tab") + } + if tb.mode != modeEdit { + t.Fatalf("new note opened in mode %q, want edit", tb.mode) + } +} diff --git a/internal/tui/noteops.go b/internal/tui/noteops.go index b013b50..6b8bbfc 100644 --- a/internal/tui/noteops.go +++ b/internal/tui/noteops.go @@ -29,6 +29,12 @@ func (a *App) createNote(folder vault.NoteFolder, title, subpath string, body *s a.addNoteToIndex(meta) if open { a.openNote(meta.Path, true) + // The new note is entered for typing, so show the editor whatever + // the default pane mode is. + if t := a.activeTab(); t != nil && t.view == nil && t.path == meta.Path { + t.mode = modeEdit + a.layout() + } a.withLoadedBuffer(meta.Path, func(buf *noteBuffer) { buf.ed.GotoLine(buf.ed.LineCount()) if a.prefs.VimMode {