Skip to content

Commit 709e4d7

Browse files
feat: updated details copywriting and removed footer (#37595)
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** - Updated copywriting for `Shield plan` page and `Subscription confirmation` page - Removed `Shield plan` footer note https://www.figma.com/design/HTAO1SrmixV4ppv7qIvLoa/Metamask-Transaction-Shield?node-id=12769-126948&t=dpj6EeZul3sgHFVg-4 <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37595?quickstart=1) ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: Shield plan copywriting update and removed footer note ## **Related issues** Fixes: ## **Manual testing steps** 1. Login to an account without shield subscription but has enough token for subscription 2. Go to Menu > Settings > Transaction Shield 3. You will be redirected to Shield plan page 4. Toggle Payment methods and Payment terms and observe changes ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** **Crypto payment monthly and yearly** <img width="412" height="614" alt="Screenshot 2025-11-07 at 2 51 47 AM" src="https://github.com/user-attachments/assets/91485b4e-789f-482c-9a0d-0999a76fb0fc" /> <img width="414" height="614" alt="Screenshot 2025-11-07 at 2 51 36 AM" src="https://github.com/user-attachments/assets/9a7ac4e4-9f59-4212-a11a-a07bec9273ce" /> **Card payment monthly and yearly** <img width="413" height="614" alt="Screenshot 2025-11-07 at 2 52 17 AM" src="https://github.com/user-attachments/assets/7ffc10b0-b828-4377-b511-399a2ea575f9" /> <img width="411" height="614" alt="Screenshot 2025-11-07 at 2 52 06 AM" src="https://github.com/user-attachments/assets/9fc5c95f-3932-4e80-baea-27c3959e9b1e" /> **14 days free trial** <img width="514" height="723" alt="Screenshot 2025-11-07 at 2 53 01 AM" src="https://github.com/user-attachments/assets/2fb92c8a-d319-4c05-9049-c632c0ba06fc" /> <!-- [screenshots/recordings] --> ### **After** **Crypto payment monthly and yearly** <img width="411" height="612" alt="Screenshot 2025-11-07 at 2 49 26 AM" src="https://github.com/user-attachments/assets/0b485c60-bd1e-489b-99c7-bb1bfdbeb216" /> <img width="410" height="611" alt="Screenshot 2025-11-07 at 2 48 29 AM" src="https://github.com/user-attachments/assets/408a20db-60b4-44de-8bf9-1ec0e97a6480" /> **Card payment monthly and yearly** <img width="409" height="609" alt="Screenshot 2025-11-07 at 2 49 48 AM" src="https://github.com/user-attachments/assets/b682e747-cc91-4ee3-9ae8-297159253c7e" /> <img width="409" height="611" alt="Screenshot 2025-11-07 at 2 49 38 AM" src="https://github.com/user-attachments/assets/d067aa9c-e57b-49a8-bc45-2af2e3487dc2" /> **Free 14-day trial** <img width="514" height="723" alt="Screenshot 2025-11-07 at 2 56 09 AM" src="https://github.com/user-attachments/assets/a28c572c-2011-4974-a0cd-69b4db7e4e04" /> <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Updates Shield Plan copy and dynamic plan details (card/crypto, month/year), removes footer auto‑renew note, and aligns i18n strings. > > - **Shield Plan UI (`ui/pages/shield-plan/shield-plan.tsx`)**: > - Refactors `planDetails` to show context-aware copy: > - Card: `shieldPlanDetails2Card`. > - Crypto: Uses `shieldPlanDetails2CryptoMonth` or `shieldPlanDetails2CryptoYear` based on plan; adds `shieldPlanDetails3` only for monthly. > - Removes footer auto-renew note under the Continue button. > - Cleans up unused var and updates hook deps. > - **Localization (`app/_locales/*/messages.json`)**: > - Updates trial copy to `"Free $1-day trial"` with descriptions. > - Replaces/introduces Shield Plan detail keys: `shieldPlanDetails2Card`, new `shieldPlanDetails2CryptoMonth`/`Year`, and sets `shieldPlanDetails3` to "Billed monthly, cancel anytime". > - Removes deprecated `shieldPlanAutoRenew` and old `shieldPlanDetails2` (en/en_GB); aligns en/GB; minor additions in `ga`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 98b3609. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent b5cbd6a commit 709e4d7

File tree

4 files changed

+41
-47
lines changed

4 files changed

+41
-47
lines changed

app/_locales/en/messages.json

Lines changed: 12 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/_locales/en_GB/messages.json

Lines changed: 12 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/_locales/ga/messages.json

Lines changed: 4 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ui/pages/shield-plan/shield-plan.tsx

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,6 @@ const ShieldPlan = () => {
273273
) ?? [],
274274
[pricingPlans, t],
275275
);
276-
const selectedPlanData = plans.find((plan) => plan.id === selectedPlan);
277276

278277
const planDetails = useMemo(() => {
279278
const details = [];
@@ -285,14 +284,20 @@ const ShieldPlan = () => {
285284
]),
286285
);
287286
}
288-
details.push(
289-
selectedPaymentMethod === PAYMENT_TYPES.byCrypto
290-
? t('shieldPlanDetails2')
291-
: t('shieldPlanDetails2Card'),
292-
);
293-
details.push(t('shieldPlanDetails3'));
287+
288+
let planDetails2 = t('shieldPlanDetails2Card');
289+
if (selectedPaymentMethod === PAYMENT_TYPES.byCrypto) {
290+
planDetails2 =
291+
selectedPlan === RECURRING_INTERVALS.year
292+
? t('shieldPlanDetails2CryptoYear')
293+
: t('shieldPlanDetails2CryptoMonth');
294+
}
295+
details.push(planDetails2);
296+
if (selectedPlan === RECURRING_INTERVALS.month) {
297+
details.push(t('shieldPlanDetails3'));
298+
}
294299
return details;
295-
}, [t, selectedPaymentMethod, isTrialed, selectedProductPrice]);
300+
}, [t, selectedPaymentMethod, isTrialed, selectedProductPrice, selectedPlan]);
296301

297302
const [showPaymentModal, setShowPaymentModal] = useState(false);
298303

@@ -485,7 +490,6 @@ const ShieldPlan = () => {
485490
<Footer
486491
className="shield-plan-page__footer"
487492
flexDirection={FlexDirection.Column}
488-
gap={3}
489493
backgroundColor={BackgroundColor.backgroundMuted}
490494
>
491495
<Button
@@ -497,13 +501,6 @@ const ShieldPlan = () => {
497501
>
498502
{t('continue')}
499503
</Button>
500-
<Text
501-
variant={TextVariant.bodySm}
502-
color={TextColor.textAlternative}
503-
textAlign={TextAlign.Center}
504-
>
505-
{t('shieldPlanAutoRenew', [selectedPlanData?.price])}
506-
</Text>
507504
</Footer>
508505
</>
509506
)}

0 commit comments

Comments
 (0)