Stop mail search opening a strip down the side of the screen

Fixkamo-internal
Shipped
September 2, 2026 at 2:40 AM UTC
Author
Kamo
Commit
2353054

MessageBrowser's root element is a horizontal flex row whose children are the columns of the mail UI. The search results bar was written as a bottom bar -- border-t, justify-between, full width -- but placed as a direct child of that row, so flexbox laid it out as one more column. Typing anything into the search box mounted it, and it appeared as a full-height grey strip pinned to the right edge of the screen reading "No results (via IMAP)", squeezing the reading pane to make room. The bar now sits inside the message list column, between the list and the drag divider, where it is a row in a flex-col rather than a column in a flex row; the result count and the pager it carries are unchanged. A search that matched nothing renders no bar at all -- there is no count worth showing and nothing to page through. The empty list says so in words instead: under "No messages found" it now names the query and suggests what to do, so a search with no matches no longer looks exactly like an empty folder. Both new strings are in kamo-translation-dictionary. Nothing was wrong on the server. searchFromIndex returns null on zero hits, so the IMAP fallback -- and the "(via IMAP)" note -- is the ordinary path for a search that matched nothing, and kamowsemail logged no search failure of either kind in the preceding 72 hours. The guard reads the source rather than rendering: what regresses is where the element sits in the tree, and jsdom does no layout, so a rendered test cannot tell a bar at the bottom from a strip down the side.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing