fix(confirmations): use elevated surface on Advanced EIP-1559 modal#33301
fix(confirmations): use elevated surface on Advanced EIP-1559 modal#33301georgewrmarshall wants to merge 2 commits into
Conversation
In Pure Black mode, the Advanced EIP-1559 network fee bottom sheet was using background.default (#000000), making it visually flat against the elevated confirmation surface underneath. Replace with getElevatedSurfaceColor(theme) so the modal uses the correct elevated surface color in Pure Black dark mode. Fixes TMCU-1089 Co-authored-by: George Marshall <georgewrmarshall@users.noreply.github.com>
Apply muted border on elevated surface in Pure Black dark mode and extend styles tests to cover border gating alongside gas-fee-token-modal. Co-authored-by: Cursor <cursoragent@cursor.com>
| // Drop getElevatedSurfaceColor, isPureBlackEnabled, and AppThemeKey checks. | ||
| container: { | ||
| backgroundColor: theme.colors.background.default, | ||
| backgroundColor: getElevatedSurfaceColor(theme), |
There was a problem hiding this comment.
AdvancedEIP1559Modal is the EIP-1559 advanced gas sheet (Max Base Fee, Priority Fee, Gas Limit), not the legacy AdvancedGasPriceModal (#33297). It opens stacked over the gas editor on Mainnet-style sends; in Pure Black dark the container used background.default and read as flat black (TMCU-1089).
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
| const { theme } = params; | ||
| const { colors } = theme; | ||
| const isPureBlackDark = | ||
| isPureBlackEnabled && theme.themeAppearance === AppThemeKey.dark; |
There was a problem hiding this comment.
isPureBlackDark matches gas-fee-token-modal and the other confirmation bottom sheets: isPureBlackEnabled plus AppThemeKey.dark. Standard dark/light themes and preview-off builds keep borderWidth 0.
| backgroundColor: theme.colors.background.default, | ||
| backgroundColor: getElevatedSurfaceColor(theme), | ||
| borderWidth: isPureBlackDark ? 1 : 0, | ||
| borderColor: isPureBlackDark ? colors.border.muted : undefined, |
There was a problem hiding this comment.
border.muted gives a visible edge when this sheet sits on the already-elevated gas modal stack; without it the elevated gray surface can still disappear against adjacent flat black chrome.
| isPureBlackEnabled && theme.themeAppearance === AppThemeKey.dark; | ||
|
|
||
| return StyleSheet.create({ | ||
| // TODO(Pure Black): Remove once MMDS ships pure-black-aware surface tokens. |
There was a problem hiding this comment.
Styles tests mirror gas-fee-token-modal: elevated background always via getElevatedSurfaceColor mock, border only when isPureBlackEnabled is true in dark mode.
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection: While this is primarily cosmetic, it touches the EIP-1559 gas fee customization modal which is part of the confirmations flow. A conservative approach warrants running SmokeConfirmations to verify the modal renders correctly and the gas fee customization flow still works end-to-end. The risk is low since only styling properties (backgroundColor, borderWidth, borderColor) are changed, not any behavioral logic. Performance Test Selection: |
|



Description
In Pure Black mode, the Advanced EIP-1559 network fee bottom sheet (
AdvancedEIP1559Modal) usedbackground.defaulton its container while stacked over an elevated confirmation surface. This made the modal appear as flat#000000instead of the elevated surface color.This change replaces
theme.colors.background.defaultwithgetElevatedSurfaceColor(theme)on the modal container, matching other confirmation gas modals (e.g.gas-fee-token-modal).Part of the Pure Black Hex Background Schema epic (TMCU-622).
Changelog
CHANGELOG entry: null
Related issues
Fixes: https://consensyssoftware.atlassian.net/browse/TMCU-1089
Manual testing steps
N/A — Pure Black mode requires device/simulator testing with the feature flag enabled; verified via unit test asserting
getElevatedSurfaceColoris used for the container background.Screenshots/Recordings
Before
After
Pre-merge author checklist
Performance checks (if applicable)
trace()for usage andaddTokenfor an exampleFor performance guidelines and tooling, see the Performance Guide.
Pre-merge reviewer checklist