[PM-37916] chore: Align Premium subscription card line items with Web#6961
Conversation
Mirror the canonical Web cart-summary visibility contract on the Premium plan screen: hide Discount and Storage rows (and their leading dividers) when null or zero, always render Estimated Tax — formatted as $0.00 when zero — and add a new Total row below Tax that carries the cadence suffix. Drops the "--" placeholder from the four premium line-item fields. The Loading dialog overlay covers the screen during the initial fetch, so removing the placeholder defaults does not regress any user-facing affordance. The free-tier rate defaults continue to use the existing PLACEHOLDER_TEXT constant.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #6961 +/- ##
==========================================
- Coverage 87.04% 86.45% -0.59%
==========================================
Files 855 869 +14
Lines 62970 63422 +452
Branches 9184 9189 +5
==========================================
+ Hits 54814 54834 +20
- Misses 4997 5428 +431
- Partials 3159 3160 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Apply the bodyLargeEmphasis token (newly added to BitwardenTypography) and textSecondary color to the Premium subscription card's Total row, per design feedback on PR #6961.
Narrow the Total row's bodyLargeEmphasis treatment to the label only — the value reverts to bodyLarge/text.primary so it matches the four rows above it. Override the subscription description's emphasis span to use text.secondary so the bolded charge amount and date sit in the same color as the surrounding copy instead of jumping to primary.
🤖 Bitwarden Claude Code ReviewOverall Assessment: APPROVE This PR aligns the Premium subscription card line items with the canonical Web cart-summary contract: Discount and Storage rows hide when zero/absent (instead of rendering |
Set the common-case label/value typography and colors as defaults on SubscriptionLineItem so each call site only has to spell out its overrides. Modifier stays as the first defaulted parameter per the codebase convention. Net effect: Billing, Storage, and Tax rows drop to four args each, Discount keeps its valueColor override, Total keeps its labelStyle override.
🎟️ Tracking
PM-37916
📔 Objective
Align the Premium plan screen's subscription card with the canonical Web cart-summary contract: hide Discount and Storage rows when zero/absent (instead of rendering
--), always render Estimated Tax ($0.00when zero), and add a discrete Total row below Tax that carries the cadence suffix.The header sentence summarizing the next charge is unchanged. The previous
--defaults are never user-visible — aDialogState.Loadingoverlay covers the screen during the subscription fetch.📸 Screenshots