mirror of
https://github.com/bulwarkmail/native.git
synced 2026-11-01 00:07:01 +00:00
Every body started as a 120 px strip that grew once the page had measured itself, so an open showed a skeleton, then a clipped strip of the body, then the full body, and the quick reply box below it jumped down as the WebView grew. A conversation arriving after the message swapped the single-message layout for cards, which reloaded the body and pushed it down under a "Loading conversation" row. - `lib/body-heights` remembers the last measured height of each body (per width); a body shown before starts at that height. - A page showing one message stretches its body over the space below the header until it has measured itself, and the quick reply sits at the bottom of the page, so it does not move whether the body turns out shorter or longer. Conversation cards start from an estimate (most of a screen for HTML, the wrapped line count for plain text). - A single message is rendered through the conversation's card list, so its body stays mounted when the conversation arrives; while it loads, the size the folder list knows for it holds the older cards' places, and the loading indicator sits in the subject row. - An open card whose body has not arrived shows its header over placeholder lines, with its reply buttons disabled until it has.