Skip to content

web-ui: an email draft folds its To and Subject away - #979

Closed
evebouf wants to merge 1 commit into
mainfrom
evebouf/collapse-draft-headers
Closed

web-ui: an email draft folds its To and Subject away#979
evebouf wants to merge 1 commit into
mainfrom
evebouf/collapse-draft-headers

Conversation

@evebouf

@evebouf evebouf commented Sep 8, 2026

Copy link
Copy Markdown

On an email inbox item, the draft's To, Cc and Subject fields sat open above the body. You almost never edit them — the agent fills them from the thread — so they pushed the actual draft down the page for nothing.

  • The three fields are now inside a <details>, collapsed by default
  • The summary line still shows the recipient and subject, so nothing is hidden — just unstacked
  • One click opens them when a reply really does need a different address or subject
  • <details> keeps its own open state, so a redraw mid-edit won't snap it shut, and no state has to be tracked
  • Pulled the default Re: … subject out of the input's value binding into draftSubject(), so the summary and the field can't drift apart

Slack drafts are untouched — they never had these fields.

web-ui 939/939, typecheck and prettier clean.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Replying from the inbox almost never means changing who it goes to or what
it is called: the agent fills both from the thread it is answering. Yet the
three fields sat above the body on every email item, so the first thing a
reader met was routing they were not going to touch, and the draft itself
started a third of the way down.

Fold them into a details, shut by default, behind a line that still names
the recipient and the subject. Nothing is hidden, only unstacked, and the
one case that needs an edit is a click away. A details element keeps its own
open state, so a redraw mid-edit does not close it, and no state has to be
tracked to do that.

The default subject was computed inline in the input's value binding, where
the summary could not reach it. It moves to draftSubject() and both callers
read the same string.

Slack drafts are unchanged; they never had these fields.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@evebouf

evebouf commented Sep 8, 2026

Copy link
Copy Markdown
Author

Folded into #976 — this belongs with the rest of the small UI fixes on that branch.

@evebouf evebouf closed this Sep 8, 2026
@evebouf
evebouf deleted the evebouf/collapse-draft-headers branch September 8, 2026 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant