···2727func (e emailItem) Description() string { return e.email.From }
28282929// emailDelegate is a custom list.ItemDelegate that renders one email per row.
3030-type emailDelegate struct{}
3030+type emailDelegate struct {
3131+ sentFolder string // when active folder matches, show To instead of From
3232+}
31333234func (d emailDelegate) Height() int { return 1 }
3335func (d emailDelegate) Spacing() int { return 0 }
···8284 subjectMax = 8
8385 }
84868585- from := truncate(cleanFrom(e.email.From), fromMax)
8787+ sender := e.email.From
8888+ if d.sentFolder != "" && e.email.Folder == d.sentFolder {
8989+ sender = "→ " + e.email.To // show recipient in Sent
9090+ }
9191+ from := truncate(cleanFrom(sender), fromMax)
8692 subject := truncate(e.email.Subject, subjectMax)
87938894 if isSelected {
···176182}
177183178184// newInboxList creates a bubbles/list configured for the email inbox.
179179-func newInboxList(width, height int) list.Model {
180180- l := list.New(nil, emailDelegate{}, width, height)
185185+// sentFolder is the IMAP folder name for Sent mail — used to show To instead of From.
186186+func newInboxList(width, height int, sentFolder string) list.Model {
187187+ l := list.New(nil, emailDelegate{sentFolder: sentFolder}, width, height)
181188 l.SetShowTitle(false)
182189 l.SetShowStatusBar(false)
183190 l.SetShowHelp(false)