Skip to content

fix(profile): polish the deactivated account screen on web and mobile#14533

Open
dylanjeffers wants to merge 1 commit into
mainfrom
fix/deactivated-account-screen
Open

fix(profile): polish the deactivated account screen on web and mobile#14533
dylanjeffers wants to merge 1 commit into
mainfrom
fix/deactivated-account-screen

Conversation

@dylanjeffers

Copy link
Copy Markdown
Contributor

Description

The deactivated / deleted account profile page looked broken: the "This Account No Longer Exists" message was pinned to the top of a mostly empty page, there was no cover photo, and the profile picture sat on a loading skeleton forever.

What changed

Shared tombstone (web)

  • Rebuilt DeactivatedProfileTombstone as a proper centered empty state — heading, supporting copy, and the CTA — using harmony primitives. Deleted the CSS module, including its margin-left: -229px hack for undoing the desktop left-column padding.

Desktop profile page

  • Pass the real userId to CoverPhoto and ProfilePicture. useCoverPhoto/useProfilePicture already scrub deactivated accounts' images and return the default placeholders (privacy/GDPR), so withholding the id was redundant and harmful: useImageSize early-returns when there's no artwork, leaving imageUrl undefined, so the cover photo rendered as bare gradient and the avatar never left its shimmer skeleton.
  • Removed the left-column spacer wrapper so the message centers across the full content width.

Mobile web

  • ProfileHeader now renders the default avatar for deactivated accounts instead of an empty src.

Native (React Native)

  • The tombstone now fills the viewport (flex: 1) so the message is vertically centered rather than stuck under the header, and it shows the default cover photo strip and default avatar.

Verification

Ran the web dev server against production and loaded /cyranomusic (a deactivated account). Before: no cover photo, skeleton avatar, message pinned to the top. After: default Audius cover photo, default avatar, and the message + button centered in the content area. Typecheck and lint pass for all touched files.

Native change verified by inspection — no simulator run.

🤖 Generated with Claude Code

The deactivated profile page rendered its message pinned to the top of a
mostly empty page, with no cover photo and a profile picture stuck on a
loading skeleton.

- Rebuild the tombstone as a centered empty state (heading + supporting
  copy + button) using harmony primitives, replacing the CSS module and
  its negative-margin hack for the desktop left column.
- Desktop: pass the real userId to CoverPhoto/ProfilePicture. The image
  hooks already scrub deactivated accounts' images and return the default
  placeholders; withholding the id left useImageSize unresolved, so no
  cover photo rendered and the avatar never left its skeleton.
- Mobile web: show the default avatar instead of an empty src.
- Native: fill the viewport so the message is vertically centered, and
  show the default cover photo and avatar.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jul 22, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 6f61206

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.

1 participant