TUI Calendar: Enter does nothing on a highlighted event (Day/Week), though the help bar shows "enter: open"

Open Beginner friendly
#418 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
90/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
go
Domain
cli

Research direction

Start in internal/tui/calendar.go by reading handleContentKey and handleArrowKey, then run hey tui and reproduce the issue in Calendar Day and Week views. Done means Enter on a highlighted event opens the existing edit form like e, while Year view keeps its current behavior.

Written by the indexing model from the issue text.

Description

What happens

In hey tui, Calendar section, Day or Week view: highlight an event with the arrow keys and press Enter. Nothing happens.

The context help bar shown while the content row is focused advertises enter open (from the generic content-row bindings in internal/tui/tui.go updateHelpBindings, ~line 743), the same hint that opens a thread in the Mail list. In the calendar Day/Week view that hint is dead — there is no key that opens/views the highlighted event.

Expected

Enter on a highlighted event opens it (the same result as e today), consistent with the help bar and with Mail, where Enter opens the selected row.

Actual

internal/tui/calendar.go:

  • handleContentKey (~line 1058) has no "enter" case.
  • handleArrowKey (~line 1133) only handles "enter" in Year view (enterYearCell, stepping into a day cell). In viewDay / viewWeek it returns handled == false.
  • So Enter falls through to v.contentVP.Update(msg) (viewport scroll) and is a no-op.

The only way to open/inspect an event is e (opens the edit form, eventFormEdit). There is no read-only "view" mode — eventFormMode is just eventFormCreate / eventFormEdit.

Suggested fix

In handleContentKey / handleArrowKey, for viewDay and viewWeek, map enter to open the selected recording when there is one:

case "enter":
    if event, ok := v.selectedRecording(); ok {
        return v.startEventForm(eventFormEdit, event), true
    }

Year view keeps its two-stage behavior (Enter steps into a cell; once inYearCell, Enter could then open the selected event). Happy to send a PR.

Environment
  • hey-cli 1.4.3 (Linux, installed via mise)
Dominant language
Go
Stars
376
Forks
44
Avg merge
1d 5h
Merged PRs (30d)
130

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from basecamp/hey-cli

All issues in basecamp/hey-cli

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.