Repository navigation
fix(ui): show deletes in the open channel and keep the message toolbar after a reaction is removed - #648
Merged
Conversation
…r after a reaction is removed Why: packages/ui/src/components/timeline/layout.ts#function textBlocks | every render with an unparsed chunk must queue its job, even one already in flight, or a cancelled effect leaves the old text on screen Why: packages/ui/src/components/scroll-view/scroll-view.tsx | a quiet period must end a scroll; browsers send no scrollend when they clamp scrollTop after content shrinks
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.
Two stale-screen bugs in the open channel:
deletedframe did arrive and the data updated, but the timeline never re-rendered. When a render found a markdown parse already in flight, it didn't queue that parse, so its tick depended on an earlier render's effect, and React had already cancelled that effect. Every render with an unparsed chunk now queues it, andstart()reuses the in-flight promise.scrollTopwith ascrollevent but sends noscrollend, and the timeline stayed in its scrolling state, which hides hover. ScrollView now also ends a scroll after 200 ms with no scroll events.Part of #619 (^561's pill counts and picker search colour are not in this PR). Map: ^559, ^562.
Smoke: loopback source host with its own
ACE_HOME, channels made withace new/ace say, headless Chromium (WebKit too for the reaction).Message deletedwithin 500 ms without a resize. Before the fix it still showed "Fresh two" 4 s later, and only a resize brought it in.scrollwith noscrollendand no toolbar appeared. WebKit didn't reproduce the bug and still works.Built in Ace
No: made from Claude Code (a fix-train worker), with headless Chromium and WebKit for the smoke test. Dogfooding gap tracked in #5.