Skip to content

fix(mobile): sync profile status bar with scroll#14117

Draft
dylanjeffers wants to merge 1 commit intomainfrom
cursor/profile-status-bar-scroll-6a8d
Draft

fix(mobile): sync profile status bar with scroll#14117
dylanjeffers wants to merge 1 commit intomainfrom
cursor/profile-status-bar-scroll-6a8d

Conversation

@dylanjeffers
Copy link
Copy Markdown
Contributor

Summary

On the mobile profile screen, nav icons transition from white to the default theme color as the user scrolls past the cover photo. The status bar stayed on light-content because ProfileScreen called useStatusBarStyle('light-content'), so clock/battery did not gain contrast on the light blurred header.

This change removes that static hook for the loaded profile state and drives status bar (and Android navigation bar) style from the same scroll shared value and threshold as ProfileNavOverlay (PROFILE_NAV_SCROLL_FADE_PX, 60px). At the top, system bar content is light again; after scrolling past the threshold it switches to dark content.

Implementation

  • Export PROFILE_NAV_SCROLL_FADE_PX from ProfileNavOverlay (replacing the file-local constant).
  • Add useProfileScrollStatusBar, which pushes react-native-bars stack entries on focus, uses replaceStackEntry when scroll crosses the threshold, and syncs once on focus via requestAnimationFrame for restored scroll positions.

Testing

Not run in this environment (tsc / workspace deps unavailable). Please verify on device/simulator: scroll profile past header, confirm status bar icons darken; scroll back to top, confirm they return to white.

Open in Web Open in Cursor 

Use the same scroll threshold as ProfileNavOverlay so system bar
content switches to dark on light blur and back to light at the top.

Co-authored-by: Dylan Jeffers <dylanjeffers@users.noreply.github.com>
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Apr 15, 2026

⚠️ No Changeset found

Latest commit: 1eb6040

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

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.

2 participants