You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Workspace - Upgrade success description is left-aligned when RHP is resized to wide #105269
Version Number: 9.5.24-5 Reproducible in staging?: Yes Reproducible in production?: N/A - new feature, doesn't exist in prod If this was caught during regression testing, add the test name, ID and link from BrowserStack:#104573 Email or phone of affected tester (no customers):[email protected] Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: Mac 26.5 / Chrome App Component: Workspace Settings
Action Performed:
Precondition:
Enable resizableRHP beta
Go to staging.new.expensify.com
Create a Collect workspace.
Go to workspace settings > Overview.
Click Plan type.
Select Control.
Click Save.
Resize RHP to wide.
Expected Result:
Upgrade success description should be centered.
Actual Result:
Upgrade success description is left-aligned when RHP is resized to wide.
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
Identify the pull request that introduced this issue and revert it.
Causing PR:[Resizable RHP] Basic drag logic (high confidence). It added the resizableRHP beta and the drag-to-widen behavior, so this bug can't happen without it.
Recommendation: Demote and fix as a follow-up. Don't revert. The bug is cosmetic, only shows with the resizableRHP beta on, and only after a manual drag on desktop. Reverting would remove the whole beta feature (34 files).
Candidate fix (not yet tested in a browser): in UpgradeConfirmation.tsx:56, center the description wrapper, for example by adding styles.alignItemsCenter.
Investigation details
Where the symptom shows: the default upgrade branch renders the description through RenderHTML (UpgradeConfirmation.tsx:55-59). It relies on a <centered-text> tag in the translation (en.ts:9190-9191), defined in BaseHTMLEngineProvider.tsx:127-131. The other branches (categorize, travel, distance rate) use a plain Text with textAlignCenter.
Not confirmed: the exact CSS reason the text goes left. The likely cause is that the HTML text box shrinks to fit its content. At 375px the wrapped lines fill the width and look centered. At wide widths the box sits on the left.
Why staging only: the upgrade screen last changed in ConfirmationPage composition migration, before this deploy, and the description rendering didn't change. The only new factor is the wider card.
Worth checking at wide widths: other <centered-text> screens in the RHP: ImTeacherUpdateEmailPage.tsx, OutcomeScreenBase.tsx, IOURequestStepOdometerImage/index.tsx.
Next Steps: An internal engineer should decide whether to remove DeployBlockerCash. Reply with @MelvinBot <your feedback> to refine this analysis.
Please re-state the problem that we are trying to solve in this issue.
In Workspace Settings > Overview, when upgrading a workspace from Collect to Control and resizing the Right Hand Panel (RHP) to wide, the upgrade confirmation description ("You've successfully upgraded [Workspace] to the Control plan! View your subscription for more details.") is left-aligned instead of centered.
What is the root cause of that problem?
In src/pages/workspace/upgrade/UpgradeConfirmation.tsx, while specific upgrade variations (isCategorizing, isReporting, isTravelUpgrade, isDistanceRateUpgrade) render with <Text style={[styles.textAlignCenter, styles.w100]}>, the general plan upgrade flow renders HTML via <RenderHTML> inside:
The wrapper <View> is missing styles.textAlignCenter and styles.alignItemsCenter. When the RHP expands to a wide width, the styles.w100 container stretches across the modal, but its contents remain left-aligned.
Additionally, in src/components/HTMLEngineProvider/BaseHTMLEngineProvider.tsx, the custom <centered-text> tag is defined as:
Because defaultViewProps in BaseHTMLEngineProvider enforces styles.alignItemsStart on block elements, a block element without styles.alignItemsCenter and styles.w100 is positioned at the flex-start (left) of the container.
What changes do you think we should make in order to solve the problem?
In src/pages/workspace/upgrade/UpgradeConfirmation.tsx, add styles.textAlignCenter and styles.alignItemsCenter to the wrapper <View> around <RenderHTML>:
This matches the existing standard used in WorkspaceConnectionsPage.tsx and WorkspaceTagsPage.tsx.
In src/components/HTMLEngineProvider/BaseHTMLEngineProvider.tsx, enhance the custom model for centered-text to include styles.alignItemsCenter and styles.w100:
What alternative solutions did you explore? (Optional)
Changing contentModel of centered-text to HTMLContentModel.textual was explored. However, <centered-text> is frequently used in locales and outcome screens wrapped around or containing other custom block tags (such as <muted-text>), so maintaining HTMLContentModel.block with explicit flex centering and full width is safer and avoids invalid HTML content-model nesting.
What automated tests can you add to prevent this from re-occurring?
Add a unit test in tests/ui/UpgradeConfirmationTest.tsx verifying that the container rendered for the HTML description contains styles.textAlignCenter and styles.alignItemsCenter.
Activity
melvin-bot commentedon Oct 28, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #104573
melvin-bot commentedon Oct 28, 2026
@JS00001 @Krishna2323 you have been assigned to this deploy blocker because you reviewed the offending PR: #104573
melvin-bot commentedon Oct 28, 2026
@war-in you have been assigned to this deploy blocker because you authored the offending PR: #104573
melvin-bot commentedon Oct 28, 2026
💬 A slack conversation has been started in #expensify-open-source
github-actions commentedon Oct 28, 2026
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
war-in commentedon Oct 28, 2026
@JS00001 we have another one 😄 could you demote? 🙏
MelvinBot commentedon Oct 28, 2026
Deploy Blocker Investigation
Causing PR: [Resizable RHP] Basic drag logic (high confidence). It added the
resizableRHPbeta and the drag-to-widen behavior, so this bug can't happen without it.Recommendation: Demote and fix as a follow-up. Don't revert. The bug is cosmetic, only shows with the
resizableRHPbeta on, and only after a manual drag on desktop. Reverting would remove the whole beta feature (34 files).Candidate fix (not yet tested in a browser): in
UpgradeConfirmation.tsx:56, center the description wrapper, for example by addingstyles.alignItemsCenter.Investigation details
RenderHTML(UpgradeConfirmation.tsx:55-59). It relies on a<centered-text>tag in the translation (en.ts:9190-9191), defined inBaseHTMLEngineProvider.tsx:127-131. The other branches (categorize, travel, distance rate) use a plainTextwithtextAlignCenter.styles/index.ts:7174,styles/index.ts:6795, applied atRightModalNavigator.tsx:230). Content built for 375px is drawn much wider.<centered-text>screens in the RHP:ImTeacherUpdateEmailPage.tsx,OutcomeScreenBase.tsx,IOURequestStepOdometerImage/index.tsx.Next Steps: An internal engineer should decide whether to remove
DeployBlockerCash. Reply with@MelvinBot <your feedback>to refine this analysis.view run
JS00001 commentedon Oct 28, 2026
behind a beta
apoorv-xs commentedon Oct 28, 2026
Proposal
Please re-state the problem that we are trying to solve in this issue.
In Workspace Settings > Overview, when upgrading a workspace from Collect to Control and resizing the Right Hand Panel (RHP) to wide, the upgrade confirmation description ("You've successfully upgraded [Workspace] to the Control plan! View your subscription for more details.") is left-aligned instead of centered.
What is the root cause of that problem?
In
src/pages/workspace/upgrade/UpgradeConfirmation.tsx, while specific upgrade variations (isCategorizing,isReporting,isTravelUpgrade,isDistanceRateUpgrade) render with<Text style={[styles.textAlignCenter, styles.w100]}>, the general plan upgrade flow renders HTML via<RenderHTML>inside:The wrapper
<View>is missingstyles.textAlignCenterandstyles.alignItemsCenter. When the RHP expands to a wide width, thestyles.w100container stretches across the modal, but its contents remain left-aligned.Additionally, in
src/components/HTMLEngineProvider/BaseHTMLEngineProvider.tsx, the custom<centered-text>tag is defined as:Because
defaultViewPropsinBaseHTMLEngineProviderenforcesstyles.alignItemsStarton block elements, a block element withoutstyles.alignItemsCenterandstyles.w100is positioned at the flex-start (left) of the container.What changes do you think we should make in order to solve the problem?
src/pages/workspace/upgrade/UpgradeConfirmation.tsx, addstyles.textAlignCenterandstyles.alignItemsCenterto the wrapper<View>around<RenderHTML>:This matches the existing standard used in
WorkspaceConnectionsPage.tsxandWorkspaceTagsPage.tsx.src/components/HTMLEngineProvider/BaseHTMLEngineProvider.tsx, enhance the custom model forcentered-textto includestyles.alignItemsCenterandstyles.w100:What alternative solutions did you explore? (Optional)
Changing
contentModelofcentered-texttoHTMLContentModel.textualwas explored. However,<centered-text>is frequently used in locales and outcome screens wrapped around or containing other custom block tags (such as<muted-text>), so maintainingHTMLContentModel.blockwith explicit flex centering and full width is safer and avoids invalid HTML content-model nesting.What automated tests can you add to prevent this from re-occurring?
Add a unit test in
tests/ui/UpgradeConfirmationTest.tsxverifying that the container rendered for the HTML description containsstyles.textAlignCenterandstyles.alignItemsCenter.Contributor details: