feat: implement rich notification setting config using AUS#30106
Conversation
|
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. |
…s and introducing a new section for wallet activity
…nts and enhancing the notification preferences UI
…fication-services-controller dependencies to latest versions
e017e79 to
8993554
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
…t and associated tests
| title={strings('app_settings.notifications_opts.marketing_title')} | ||
| status={getStatusText(preferences?.marketing)} | ||
| iconName={IconName.Campaign} | ||
| onPress={() => |
There was a problem hiding this comment.
question: For the marketing section, should the In-app toggle also keep the existing feature-announcement controller flag in sync?
It looks like core still gates product-announcement notifications on NotificationServicesController.state.isFeatureAnnouncementsEnabled here:
https://github.com/MetaMask/core/blob/main/packages/notification-services-controller/src/NotificationServicesController/NotificationServicesController.ts#L1260-L1263
Turning off Marketing > In-app updates AUS but I think it still might allow Contentful productAnnouncement items in the notification list.
There was a problem hiding this comment.
Yes let's discuss what we should do about it
| item={item} | ||
| evmAddress={evmAddress} | ||
| icon={accountAvatarType} | ||
| disabledSwitch={shouldDisableSwitches} |
There was a problem hiding this comment.
thought (non-blocking): the social AI section disables the secondary options when push notifications is disabled. Should we do something similar here? If the user does not have wallet push or in-app notifications on, then we disable the accounts options.
There was a problem hiding this comment.
I agree. However I prefer doing it in a follow up PR, because the behavior you're proposing would still not be aligned with the social AI section, which relies only on the push toggle to disable their section.
We should align with the social AI team if we can apply the same logic to both
|
@metamaskbot update-mobile-fixture |
|
🔄 Fixture update started. Running workflow from branch |
|
❌ E2E fixture update failed.\n\nCommon causes:\n- CI workflow is still running — wait for 'Build iOS Apps' to complete\n- CI workflow was skipped — ensure your PR has iOS-impacting changes or use |
|
@metamaskbot update-mobile-fixture |
|
🔄 Fixture update started. Running workflow from branch |
|
❌ E2E fixture update failed.\n\nCommon causes:\n- CI workflow is still running — wait for 'Build iOS Apps' to complete\n- CI workflow was skipped — ensure your PR has iOS-impacting changes or use |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit cff91f7. Configure here.
…s and simplify queryKey
afee7a6
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection: Performance Test Selection: |
|
christopherferreira9
left a comment
There was a problem hiding this comment.
Looks good for QA




Description
Revamps the notifications settings UX into section-based configuration (wallet activity, perps, Social AI, marketing) with a new NotificationSettingsSection screen and updated navigators to route into it.
Changelog
CHANGELOG entry: Revamp notification settings and enrich them with several sections
Related issues
Core PR: MetaMask/core#8784
Fixes: https://consensyssoftware.atlassian.net/browse/GE-13
Manual testing steps
Screenshots/Recordings
Before
After
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2026-05-15.at.17.16.52.mov
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2026-05-15.at.17.17.52.mov
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
Note
Medium Risk
Moderate risk: refactors notifications settings/navigation and introduces new AUS-backed preference read/merge/write logic, which could affect persistence and toggle behavior if the storage contract or caching assumptions are wrong.
Overview
Revamps notification settings into a section-based UI (wallet activity, perps, Social AI, marketing) with a new
NotificationSettingsSectionscreen for per-section push/in-app toggles and extra content (wallet-activity account selection + marketing disclaimer + embedded Social AI preferences).Switches preference sourcing/persistence to Authenticated User Storage (AUS) via a new
useNotificationStoragePreferenceshook (shared query key, optimistic cache updates, read-merge-write PUT, and refetch-on-failure), and updates Social AI preferences to reuse this shared storage flow.Updates navigation and headers to support the new section route (
Routes.SETTINGS.NOTIFICATION_SETTINGS_SECTION), modernizes the notifications list header UI, and removes legacy/developer-only pieces (e.g.,resetNotifications,SettingsNotification, and the Social LeaderboardNotificationPreferencesView) while adjusting tests accordingly.Reviewed by Cursor Bugbot for commit afee7a6. Bugbot is set up for automated code reviews on this repo. Configure here.