Skip to content

fix(notifications): move unread indicator beside timestamp#32919

Merged
zelkibuilds merged 2 commits into
mainfrom
fix/notification-unread-dot-by-timestamp
Jul 8, 2026
Merged

fix(notifications): move unread indicator beside timestamp#32919
zelkibuilds merged 2 commits into
mainfrom
fix/notification-unread-dot-by-timestamp

Conversation

@andrewjcohen

@andrewjcohen andrewjcohen commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Description

The notification list had excessive left padding because the unread indicator (BadgeStatus) was rendered inline before the notification icon, adding ~12–16px even on read items (via opacity-0).

This PR moves the unread dot to the timestamp row, immediately to the left of the date, vertically centered. The icon column no longer reserves space for the dot, so list items align to the intended 16px horizontal padding.

Changelog

CHANGELOG entry: Fixed notification list alignment by moving the unread indicator next to the timestamp

Related issues

Refs: N/A — internal UI spacing fix for the notification list; no linked ticket

Manual testing steps

Feature: Notification list unread indicator placement

  Scenario: unread notification shows dot beside timestamp
    Given the app is open with notifications enabled
    And the notifications list contains at least one unread notification

    When the user opens the notifications list
    Then the unread notification shows a primary dot to the left of the timestamp
    And the notification icon aligns with the 16px left padding

  Scenario: read notification has no unread dot
    Given the notifications list contains at least one read notification

    When the user opens the notifications list
    Then the read notification does not show an unread dot
    And the icon and content align consistently with unread items

Screenshots/Recordings

N/A — layout change is best verified in-app on device/simulator; screenshots can be added during QA if requested.

Before

image

After

image

Pre-merge author checklist

Performance checks (if applicable)

  • I've tested on Android
    • Ideally on a mid-range device; emulator is acceptable
  • I've tested with a power user scenario
    • Use these power-user SRPs to import wallets with many accounts and tokens
  • I've instrumented key operations with Sentry traces for production performance metrics

For performance guidelines and tooling, see the Performance Guide.

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.

Note

Low Risk
Scoped notification list layout and presentation only; behavior is covered by updated unit tests with no auth, data, or API impact.

Overview
Relocates the unread indicator from the leading icon column to the title row, immediately left of the formatted timestamp, using BadgeStatus only when isRead is false.

Simplifies the icon column by removing BadgeStatus, the isRead prop, and the extra row that kept an invisible dot on read notifications—fixing excess left padding so icons align with the intended 16px inset.

Wires the list row so Content receives isRead from the notification while Icon only gets image/badge props; tests cover unread badge visibility in Content and drop isRead from Icon tests.

Reviewed by Cursor Bugbot for commit cc39112. Bugbot is set up for automated code reviews on this repo. Configure here.

Relocate the unread BadgeStatus dot from the notification icon to the timestamp row so list items align to the intended 16px left padding.
@andrewjcohen andrewjcohen requested a review from a team as a code owner July 7, 2026 22:06
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

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.

@mm-token-exchange-service mm-token-exchange-service Bot added the team-design-system All issues relating to design system in Mobile label Jul 7, 2026
@andrewjcohen andrewjcohen self-assigned this Jul 7, 2026
@mm-token-exchange-service mm-token-exchange-service Bot added the INVALID-PR-TEMPLATE PR's body doesn't match template label Jul 7, 2026
@github-actions github-actions Bot added size-S risk:low AI analysis: low risk labels Jul 7, 2026
@mm-token-exchange-service mm-token-exchange-service Bot removed the INVALID-PR-TEMPLATE PR's body doesn't match template label Jul 7, 2026
@mm-token-exchange-service

Copy link
Copy Markdown
Contributor

PR template — items to address before "Ready for review"

Warnings — informational, address before merging:

  • Pre-merge author checklist has unchecked items (e.g. "I've tested on Android"). Every box must be consciously checked — see docs/readme/ready-for-review.md.

See docs/readme/ready-for-review.md for the full Definition of Ready for Review.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: None (no tests recommended)
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: low
  • AI Confidence: 92%
click to see 🤖 AI reasoning details

E2E Test Selection:
All 5 changed files are within the Notification UI component directory (app/components/UI/Notification/). The changes are a pure UI refactoring: the unread badge indicator (BadgeStatus) was moved from the Icon component to the Content component, and the isRead prop was shifted accordingly. The List/index.tsx was updated to pass isRead to Content instead of Icon. Two test files were updated to match the new component API. There are no changes to: controllers, Engine, navigation, transaction flows, network management, E2E test infrastructure, or any shared components that could break existing E2E tests. The notification list UI is not covered by any specific E2E test tag. This is a low-risk internal component refactoring with no functional behavior change from the user's perspective (the unread badge still appears/disappears based on read state).

Performance Test Selection:
The changes are limited to notification list item UI components (Icon and Content). These are not in any performance-sensitive flow measured by the available performance test tags (account list, onboarding, login, swaps, launch, asset loading, predict, perps). No performance tests are warranted.

View GitHub Actions results

@sonarqubecloud

sonarqubecloud Bot commented Jul 7, 2026

Copy link
Copy Markdown

@zelkibuilds zelkibuilds added this pull request to the merge queue Jul 8, 2026
Merged via the queue into main with commit 11c09d2 Jul 8, 2026
83 of 85 checks passed
@zelkibuilds zelkibuilds deleted the fix/notification-unread-dot-by-timestamp branch July 8, 2026 11:45
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 8, 2026
@mm-token-exchange-service mm-token-exchange-service Bot added the release-8.3.0 Issue or pull request that will be included in release 8.3.0 label Jul 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-8.3.0 Issue or pull request that will be included in release 8.3.0 risk:low AI analysis: low risk size-S team-design-system All issues relating to design system in Mobile team-engagement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants