Skip to content

feat(native): activity center screen with navigation and unseen indicator - #30871

Open
PeKne wants to merge 5 commits into
developfrom
feat/native/activity-center-module
Open

feat(native): activity center screen with navigation and unseen indicator#30871
PeKne wants to merge 5 commits into
developfrom
feat/native/activity-center-module

Conversation

@PeKne

@PeKne PeKne commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Description

  • Adds ActivityCenterScreen with three placeholder tabs (Notifications, System, Release notes)
  • Registers ActivityCenterStackNavigator in the root stack (slide_from_bottom presentation)
  • Extracts selectHasUnseenNotifications from a local inline selector in the desktop Navigation.tsx to a shared selector in @suite-common/toast-notifications
  • SubTabs improvements:
    • Adds accessory?: ReactNode to SubTabItem in @suite-native/atoms for inline per-tab badges
    • Removes hardcoded paddingHorizontal from SubTabs.tabsStyle and applies it at each callsite instead
  • DynamicScreenHeader improvements:
    • Adds marginBottom prop to DynamicScrollableScreenContentHeader (default sp32) so the Activity Center screen can use sp16

Notes for QA

  • Enable the feature flag: EXPO_PUBLIC_FF_IS_ACTIVITY_CENTER_ENABLED=true
  • Bell button appears in the home header → tap opens the Activity Center screen sliding up from bottom
  • Screen shows "Activity" title (dynamic header collapses on scroll) and three SubTabs

Related Issue

Resolve #30753

Screenshots:

Screen.Recording.2026-08-05.at.12.50.08.mov

🤖 LLM Test Recommendations

Summary: The bulk of changes are in suite-native modules that are not covered by the suite-web E2E suite, so they carry unquantified native-only risk. The two suite-web changes touch global UI building blocks (sidebar navigation and toast selectors), so the recommended strategy is a small smoke run covering onboarding-to-dashboard navigation, settings navigation, and a toast assertion. These tests should catch broad regressions without running the entire suite.

Changed files (26)
  • networks/network-module/network-module-suite-common-types/tsconfig.lib.json
  • packages/suite/src/components/suite/layouts/SuiteLayout/Sidebar/Navigation.tsx
  • suite-common/toast-notifications/src/notificationsSelectors.ts
  • suite-native/activity-center/package.json
  • suite-native/activity-center/src/components/ActivityCenterButton.tsx
  • suite-native/activity-center/tsconfig.json
  • suite-native/app/package.json
  • suite-native/app/src/navigation/RootStackNavigator.tsx
  • suite-native/app/tsconfig.json
  • suite-native/atoms/src/SubTabs.tsx
  • suite-native/device-manager/package.json
  • suite-native/device-manager/src/components/DeviceManagerScreenHeader.tsx
  • suite-native/device-manager/tsconfig.json
  • suite-native/intl/src/messages.ts
  • suite-native/module-activity-center/package.json
  • suite-native/module-activity-center/src/index.ts
  • suite-native/module-activity-center/src/navigation/ActivityCenterStackNavigator.tsx
  • suite-native/module-activity-center/src/screens/ActivityCenterScreen.tsx
  • suite-native/module-activity-center/tsconfig.json
  • suite-native/module-send/tsconfig.json
  • suite-native/module-trading/src/components/general/Header/HeaderTabs.tsx
  • suite-native/navigation/src/components/DynamicHeader/DynamicScreenHeader.tsx
  • suite-native/navigation/src/components/DynamicHeader/DynamicScrollableScreenContentHeader.tsx
  • suite-native/navigation/src/navigators.ts
  • suite-native/navigation/src/routes.ts
  • suite-native/trading-history/src/components/TradingHistoryTabs.tsx

Recommended tests (4)

🔴 High priority (3)
  • suite/e2e/tests/general/wallet-discovery.test.ts — Completes onboarding and navigates to the Dashboard and device switcher, which are reached through the SuiteLayout sidebar navigation. A regression in Navigation.tsx would likely break this core navigation flow.
  • suite/e2e/tests/onboarding/analytics-consent.test.ts — Visits /accounts during onboarding, completes the flow, and verifies the Suite dashboard layout and wallet send form. This directly exercises the transition into the main Suite layout where Navigation.tsx is rendered.
  • suite/e2e/tests/settings/general.test.ts — Navigates from the dashboard to Settings > Application and interacts with settings controls. The sidebar navigation component is the entry point to Settings, so this catches Navigation.tsx regressions.
🟡 Medium priority (1)
  • suite/e2e/tests/settings/passphrase.test.ts — Verifies that the '@toast/settings-applied' notification appears and later disappears. Changes to toast notification selectors could affect how the test locates or waits for this toast.

⚠️ Changes with no test coverage (24)

  • networks/network-module/network-module-suite-common-types/tsconfig.lib.json
  • suite-native/activity-center/package.json
  • suite-native/activity-center/src/components/ActivityCenterButton.tsx
  • suite-native/activity-center/tsconfig.json
  • suite-native/app/package.json
  • suite-native/app/src/navigation/RootStackNavigator.tsx
  • suite-native/app/tsconfig.json
  • suite-native/atoms/src/SubTabs.tsx
  • suite-native/device-manager/package.json
  • suite-native/device-manager/src/components/DeviceManagerScreenHeader.tsx
  • suite-native/device-manager/tsconfig.json
  • suite-native/intl/src/messages.ts
  • suite-native/module-activity-center/package.json
  • suite-native/module-activity-center/src/index.ts
  • suite-native/module-activity-center/src/navigation/ActivityCenterStackNavigator.tsx
  • suite-native/module-activity-center/src/screens/ActivityCenterScreen.tsx
  • suite-native/module-activity-center/tsconfig.json
  • suite-native/module-send/tsconfig.json
  • suite-native/module-trading/src/components/general/Header/HeaderTabs.tsx
  • suite-native/navigation/src/components/DynamicHeader/DynamicScreenHeader.tsx
  • suite-native/navigation/src/components/DynamicHeader/DynamicScrollableScreenContentHeader.tsx
  • suite-native/navigation/src/navigators.ts
  • suite-native/navigation/src/routes.ts
  • suite-native/trading-history/src/components/TradingHistoryTabs.tsx

Updated: 2026-08-05T12:01:03.808Z

🌐 Preview deployments

🌐 Suite Web preview: https://dev.suite.sldev.cz/suite-web/feat/native/activity-center-module/web/

🔍 Currents Test Results

🔍 Suite desktop test results: View in Currents

🔍 Suite web test results: View in Currents

🔍 Suite native android test results: View in Currents

🔒 Quarantined E2E Tests

Trezor Suite (web) — 3 test(s)
Test Type
Quarantine test: "Recovery - dry run,Recovery with device reconnection" 🙋 manual
Quarantine test: "TrezorConnect webextension -> Suite Web,second call after popup was closed by user should work" 🙋 manual
Quarantine test: "Recovery T2T1 - dry run,Recovery after partial recovery" 🙋 manual

Updated: 2026-08-05T12:03:16.254Z • 3 test(s) total

Trezor Suite (desktop) — 2 test(s)
Test Type
Quarantine test: "Recovery - dry run,Recovery after partial recovery" 🙋 manual
Quarantine test: "Recovery - dry run,Recovery with device reconnection" 🙋 manual

Updated: 2026-08-05T11:44:57.015Z • 2 test(s) total

@PeKne
PeKne force-pushed the feat/native/activity-center-module branch from cd1abb5 to 79cc7dc Compare August 5, 2026 11:00
Comment thread suite-native/module-trading/src/components/general/Header/HeaderTabs.tsx Outdated
Comment thread suite-native/atoms/src/SubTabs.tsx
Comment thread suite-native/activity-center/src/screens/ActivityCenterScreen.tsx Outdated
Comment thread suite-native/app/src/navigation/RootStackNavigator.tsx Outdated
@PeKne
PeKne force-pushed the feat/native/activity-center-module branch from 79cc7dc to 8faf575 Compare August 5, 2026 11:29
PeKne added 2 commits August 5, 2026 13:36
…on, unseen indicator and tab accessory support
…on, unseen indicator and tab accessory support
}

export enum ActivityCenterStackRoutes {
ActivityCenter = 'ActivityCenter',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need navigation stack here? Seems like an overkill. What screens are planned to be added?

@yanascz yanascz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works as expected.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Activity center - Create module-activity-center package + screen skeleton

2 participants