Repository navigation
feat(mobile): page comments on the native composer (suggestion for #7810) - #7923
Closed
saddlepaddle wants to merge 1 commit into
Closed
saddlepaddle wants to merge 1 commit into
saddlepaddle wants to merge 1 commit into
Conversation
The comment sheet was a second composer: a React Native CommentComposer in a fitToContents formSheet. react-native-screens does nothing with the keyboard, so iOS extended the sheet behind it, and its quick replies were bare glyphs pushed into the sheet's corner. Home and the workspace already have a composer that tracks the keyboard natively, so the page uses that. The composer gains `controls`: a caller's own 32pt buttons in the expanded control row beside `+`, drawn with ComposerControlStyle like the mic and send. One with a `menu` opens a native menu, which is what the presets need, and `disabled` keeps quick replies from posting over a typed draft. That leaves @superset/symbol-button, the comment route, CommentSheet, QuickReplies and the pick fields of the page comment store with no callers, so they go. focus() waits a frame after mount: the overlay attaches after the first commit, and focusing before that left the composer collapsed. Reply drafts in the all-comments sheet are kept per thread, so switching threads no longer discards a half-written reply.
saddlepaddle
had a problem deploying
to
preview
September 29, 2026 01:59 — with
GitHub Actions
Failure
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Contributor
🧹 Preview Cleanup CompleteThe following preview resources have been cleaned up:
Thank you for your contribution! 🎉 |
This branch had an error being deployed
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.
A suggestion for #7810, as one commit on top of
3e576fff9f. @harshithmullapudi, please validate it on your side before merging it into your branch.Review with screenshots: https://app.superset.sh/page/pr-7810-review-mobile-comment-bottom-sheet-6btmik
What
CommentComposerin aformSheet. With the keyboard up, the sheet ran behind the keyboard. react-native-screens has no keyboard handling, so iOS extended the sheet under it. The native composer tracks the keyboard itself.controls: a caller's own buttons in the expanded control row beside+, drawn like the mic and send. A control with amenuopens a native menu, which covers the presets.disabledkeeps quick replies from posting over a typed draft, which was your rule.CommentSheet,QuickReplies,@superset/symbol-button, and the pick fields of the page comment store.focus()waits one frame after mount, because the overlay attaches after the first commit.Verified
On an iPhone 17 Pro Max simulator (iOS 26) against production, with a fresh native build:
Typecheck, biome,
check:i18nand the page tests are clean. The catalogs didn't change, because the quick-reply labels reuse your translated ids.Not verified
Needs a native rebuild (
ios/pods), since it adds a Swift file to the composer and removes a module.Open design call
The composer dims the page while it's open, which hides the outlined block.
backdrop="passthrough"would keep the block visible, but it lets taps reach the page while typing.Summary by cubic
Replaces the page comment sheet with the native composer, so the keyboard no longer runs behind the form sheet. The old fitToContents sheet had no keyboard handling; the native composer tracks the keyboard itself.
The composer gains caller-defined
controlsin the expanded row beside+, which power the page's quick replies: delete, approve, and a native menu of presets. Controls stay disabled while a draft is typed, and reply drafts in the all-comments sheet are now kept per thread instead of being discarded when switching threads. The now-unused comment route,CommentSheet,QuickReplies,@superset/symbol-button, and the pick fields of the page comment store are removed.Migration
Written for commit 73b02c1. Summary will update on new commits.