Repository navigation
fix(chat): Sent Back footer divider and padding; received returns read "to You" - #1227
Merged
Merged
Conversation
…ived return "to You" The Sent Back footer gets a full-width one-pixel divider along its top edge, in Color.rowSeparator, the color Row draws its separator in. The Send Back action row stays without one. A received return now reads "to You"; the original sender sees it as "<Name> sent back" / "to You".
The Sent Back footer dropped the card's 16pt bottom padding, so the counterpart line sat directly on the new divider. It now sits under the padding, as the Send Back row does, so the gap above the divider matches the gap above the row. The footer adds 36 to the card's height, not 20.
The status check resolving, or a return landing, used to add the Send Back row or Sent Back footer with animation off, so the card snapped to its new height. A row that arrives on a card already on screen now fades in while the reflow spring grows the card. A row known when the card is first drawn, or on a reused cell, still appears with no animation. This drops ChatViewController's no-animation staging pass and its tests: the reconfigure now rides the batch spring like any other height change. Adds a test that the row and footer never widen the card: the card's width is a fixed constraint at maxWidth, and the row spans it edge to edge.
bmc08gt
added a commit
that referenced
this pull request
Nov 4, 2026
… arrive late (#1228) A cash card's counterpart line and token icon can land after the card is drawn (the peer's name resolves, the icon's URL arrives). The transcript's reflow spring already grows the card to fit them, but the lines themselves popped in at full opacity. They now fade in over ChatMotion.reflow's duration, as the Send Back row and footer do since #1227. A line known at first draw, a redraw with nothing new, and a recycled cell draw without animating. The fade is a CABasicAnimation on opacity: a CATransition is filed under Core Animation's own `transition` key, so it could not be told apart. Spec: orchestrator #117.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #1220, which merged before these changes landed. Spec: orchestrator #115 (
docs/specs/send-back.mdat 169b449).Sent Back footer divider. The footer now draws a full-width 1px hairline along its top edge, in
Color.rowSeparator, the colorRowuses for its separator. The Send Back action row (Available, Sending) still has no divider.Padding above the footer. In #1220 the footer took the place of the card's 16pt bottom padding, so the counterpart line sat directly on the divider. The footer now sits below that padding, as the Send Back row does. The gap above the divider now matches the gap above the row in S1 (node 13296:477). The footer adds 36 to the card's height, where it used to add 20.
"to You". A received return's counterpart reads "to You". Other received DM cash keeps "from " from the cash-bubbles layout; nothing else in the app reads "to you".
A late row animates in. #1220 added the Send Back row or Sent Back footer with animation off, so a card that was already on screen snapped to its new height when the status check resolved or a return landed. That row now fades in while the transcript's
ChatMotion.reflowspring grows the card. A row known when the card is first drawn, or on a reused cell, still appears with no animation. This removesChatViewController.sendBackStageand its no-animation pass; the reconfigure rides the batch spring like any other height change.Width. The row and footer can't widen a card: the card's width is a fixed constraint at
maxWidth(0.64 of the transcript row), and the row is pinned to the card's leading and trailing edges.Tests:
ChatCashCardCellTests.sendBackRow_sizesexpects +44 for the row and +36 for the footer.sendBackRow_dividerOnFooterOnlychecks that only the footer draws the divider.SendBackCaptionTests.ordinaryReceived_unchangedchecks that ordinary received cash still reads "from ".sendBackRow_keepsCardWidthlays the card out at 189.44 and 250 wide and checks it keeps that width with no row, the row, the spinner and the footer.sendBackRow_animatesOnlyLateArrivalsandsendBackArrivesLate_rulescheck which configures fade the row in.