Skip to content

feat(chat): one-row glass composer with $ beside it - #964

Merged
bmc08gt merged 2 commits into
feat/chat-media-offlinefrom
feat/chat-composer-one-row
Oct 5, 2026
Merged

bmc08gt merged 2 commits into
feat/chat-media-offlinefrom
feat/chat-composer-one-row

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Last of four stacked PRs for chat photos, on top of #963. Moves the composer to one glass row.

  • One row: +, the field and send. A round $ sits left of the field and splits off the field's glass when typing starts. Send appears only with a draft.
  • Text that wraps or holds a newline stacks the field above + and send, and stays stacked until the draft is cleared.
  • The + menu opens from the $'s left edge, 220pt wide, and covers the $ while open.
  • The bar reports its height with onGeometryChange. The GeometryReader report missed the end height of an animated stack, so the clip cut off the top line.

Stack: #961 → #962 → #963 → this.

The composer is a single row: +, the message field and send, in glass
tinted 3% white with a lit rim and 28pt corners. A round $ sits left of
the field and splits from the field's glass on the draft's first
character, rejoining it when the draft is cleared. Send pops in on a
draft and is gone without one. An empty field takes focus from a tap
anywhere right of +.

Text that wraps or holds a newline stacks the field: the text takes the
full width and + and send drop to a row below. It stays stacked until
the draft is cleared, so editing near the wrap point does not flip the
layout. The caret and text spring into place together rather than the
caret trailing on UIKit's own animation.

The bar now reports its height with `onGeometryChange`. The
`GeometryReader` report delivered only the height an animated stack
started from, so the bar's clip stayed one row tall and cut off the top
line. When the composer shrinks, the clip eases down on the stack spring
while the transcript moves in one frame, as #908 does.

The + menu holds camera and photos. It opens from the $'s margin at
220pt, its rows sharpening out of a blur as it grows from +, and springs
back into + without a colour jump. The composer stays visible under the
camera and photo cards, and a capture or pick collapses into its chip
with the photo drawn throughout.
It describes the two-row layout this PR replaced with one row.
@bmc08gt
bmc08gt force-pushed the feat/chat-composer-one-row branch from a7456e9 to 776bd6d Compare October 5, 2026 22:23
@bmc08gt
bmc08gt merged commit d79ba32 into main Oct 5, 2026
2 of 3 checks passed
@bmc08gt
bmc08gt deleted the feat/chat-composer-one-row branch October 5, 2026 22:24
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