- Add promo banner illustration (assets/images/invite_friends_promo_banner.webp)
and replace the empty placeholder box in FollowersPromoBanner.
- Redirect the followers empty-state banner to the Find and Invite Friends
settings screen instead of opening the share sheet, gated to mirror that
screen's availability (native, geolocation allowlist, feature flag) so we
don't promote contact import where the settings entry is hidden.
- Drop the now-dead invite dialog mount/control from ProfileFollowers and
update the banner a11y copy to match the new destination.
- Scanner: collapse the unused error-message state to a boolean (the overlay
renders its own localized copy).
Addresses code-review findings on the invite-friends feature:
- Gate the profile-header share button and followers promo banner to
native; the invite dialog is a no-op on web, so these were dead buttons.
- Show the real canonical profile URL in the invite-link field so the
displayed text matches what Copy/Share/QR actually use.
- Add a web fallback for the QR scanner screen (route is registered on
all platforms) and remove the unimplemented gallery picker button.
- Reuse shared hexToRgb/rgbToHex from alf/util/colorGeneration in ThemedQrCard.
- Rebuild ThemePicker on the shared Menu component instead of a hand-rolled
Modal dropdown.
- Fix an import-sort lint error in dialogs/nuxs/index.
The invite-friends share sheet is native-only (InviteFriendsDialog is a web
no-op), so the drawer share button did nothing on web. Only pass onPressShare
on native so the button is not rendered on web.
- Drawer: move the share button inline with the display name (right-aligned)
and keep the drawer open when opening the share sheet
- Settings: remove the redundant "Find and invite friends" item and rename the
existing contacts link to "Find and invite friends"
- Invite dialog: add a "Done" button and a full-width header divider using the
Dialog.Header renderLeft + edge-to-edge content padding pattern
- NUX announcement: wire up the promo illustration as the full-bleed header
background with the "New Feature" tag overlaid
- Fix "Try it": mount the invite dialog persistently in NuxDialogs so it
survives the announcement being dismissed, then open it after the handoff