Skip to content

fix(mobile): route all contest notifications to Contest screen#14384

Merged
dylanjeffers merged 2 commits into
mainfrom
fix/remix-contest-push-deep-link
May 22, 2026
Merged

fix(mobile): route all contest notifications to Contest screen#14384
dylanjeffers merged 2 commits into
mainfrom
fix/remix-contest-push-deep-link

Conversation

@dylanjeffers
Copy link
Copy Markdown
Contributor

@dylanjeffers dylanjeffers commented May 22, 2026

Summary

Most remix-contest notifications still mapped to the generic entityHandler in useNotificationNavigation.ts. That handler routes Entity.Track notifications to the Track screen, but every contest notification is meant to land on the contest page for the host track.

Two of them weren't mapped at all (ArtistRemixContestEndingSoon, ArtistRemixContestSubmissions) — tapping those pushes was a silent no-op.

This PR introduces a shared contestHandler and routes every contest notification through it:

Notification Before After
FanRemixContestStarted Track Contest
FanRemixContestEnded Track (no entityType → fell through to no-op) Contest
FanRemixContestEndingSoon Track Contest
FanRemixContestWinnersSelected Track Contest
RemixContestUpdate Track / NotificationUsers Contest
FanRemixContestSubmission Submission Track Submission Track (unchanged — matches web; lets the recipient play the remix)
ArtistRemixContestEnded Track Contest
ArtistRemixContestEndingSoon No-op (unmapped) Contest
ArtistRemixContestSubmissions No-op (unmapped) Contest

The Contest screen accepts { trackId } and resolves the event, comments, and tabs internally. entityId on every contest notification is the host track id, which is exactly what the screen wants.

Test plan

For each notification type, send yourself a push and tap from the lock screen / notification center:

  • FanRemixContestStarted → opens Contest page for the host track
  • FanRemixContestEndingSoon → opens Contest page
  • FanRemixContestEnded → opens Contest page (was a no-op before)
  • FanRemixContestWinnersSelected → opens Contest page
  • RemixContestUpdate → opens Contest page
  • FanRemixContestSubmission → opens the submission's Track page (unchanged)
  • ArtistRemixContestEnded → opens Contest page
  • ArtistRemixContestEndingSoon → opens Contest page (was a no-op before)
  • ArtistRemixContestSubmissions → opens Contest page (was a no-op before)
  • Tap an in-app inbox row of each kind — same destinations

🤖 Generated with Claude Code

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 22, 2026

⚠️ No Changeset found

Latest commit: ef24753

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

dylanjeffers and others added 2 commits May 22, 2026 12:32
The FanRemixContestStarted notification was mapped to the shared
entityHandler, which routes Track-entity notifications to the Track
screen. The intended destination is the contest page for that track,
so the deep-link from the push notification (and the in-app inbox tap)
was landing on the wrong screen.

Add a dedicated handler that navigates to the Contest screen using
the notification's entityId as the trackId, and update the in-app
notification row to match.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Most remix-contest notification types were still mapped to the generic
entityHandler, which routes Track-entity notifications to the Track
screen. Only the "started" notification was previously fixed.

Map every fan- and artist-facing contest notification through a shared
contestHandler that navigates to the Contest screen with the host
track id from entityId. Also add the two missing handlers
(ArtistRemixContestEndingSoon, ArtistRemixContestSubmissions) that
weren't in the map at all — tapping those pushes was a no-op before.

The FanRemixContestSubmission handler keeps navigating to the
submission track since the recipient wants to play the new remix; that
matches the web destination.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@dylanjeffers dylanjeffers force-pushed the fix/remix-contest-push-deep-link branch from ba6c4c5 to ef24753 Compare May 22, 2026 19:41
@dylanjeffers dylanjeffers changed the title fix(mobile): route remix-contest-started notification to Contest screen fix(mobile): route all contest notifications to Contest screen May 22, 2026
@dylanjeffers dylanjeffers merged commit f5b09c6 into main May 22, 2026
3 checks passed
@dylanjeffers dylanjeffers deleted the fix/remix-contest-push-deep-link branch May 22, 2026 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant