fix(profile): stop falling back to email when display_name is empty
The owner attribution helper used to fall back from display_name to
the part of the email before "@" when no display name was set. That
defeats the point of letting users pick a name: anyone who hadn't
explicitly chosen one had their email prefix surfaced publicly.
New fallback chain, applied uniformly:
- display_name (the user's chosen name) — if set, use it
- username (also chosen by the user as a URL slug) — if set, use it
- null — render nothing; the client hides the attribution line
Wire type ActivityPublic.owner_display is now `string | null`.
ActivityRow renders the "Lagt til av X" line only when display is
non-null.
Same idea applied to the user's own surfaces (nav + greeting):
- Nav button shows "Profil" (a label, not a name) when display_name
is empty, instead of falling back to the email.
- Home greeting drops "Velkommen, <name>." entirely when the user
has no display name, leaving just "Her er aktivitetene dine ...".
The feedback list (moderator view) and admin user table keep showing
the email — moderators and admins legitimately need it to identify
users for triage and role management.
This commit is contained in:
parent
d68859d68b
commit
43c24ec16b
6 changed files with 35 additions and 11 deletions
|
|
@ -168,7 +168,7 @@
|
|||
</button>
|
||||
<button type="button" onclick={() => (view = 'profile')}
|
||||
aria-label="Profil">
|
||||
{session.user.display_name?.trim() || session.user.email}
|
||||
{session.user.display_name?.trim() || 'Profil'}
|
||||
</button>
|
||||
<button onclick={onLogout}>Logg ut</button>
|
||||
{:else if view !== 'login' && view !== 'signup' && view !== 'recovery'}
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@
|
|||
{@render locationLine(activity.loc_label, activity.loc_lat, activity.loc_lng)}
|
||||
{/if}
|
||||
{#if activity.scheduled_at}<p class="muted">🕒 {formatDate(activity.scheduled_at)}</p>{/if}
|
||||
{#if activity.visibility === 'public'}
|
||||
{#if activity.visibility === 'public' && activity.owner_display}
|
||||
<p class="muted" style="font-size: 0.8rem;">
|
||||
Lagt til av
|
||||
{#if activity.owner_username}
|
||||
|
|
|
|||
|
|
@ -117,8 +117,11 @@
|
|||
</p>
|
||||
{:else if session.user}
|
||||
<p class="muted" style="margin: 0;">
|
||||
Velkommen, {session.user.display_name?.trim() || session.user.email}.
|
||||
Her er aktivitetene dine for vinteren.
|
||||
{#if session.user.display_name?.trim()}
|
||||
Velkommen, {session.user.display_name}. Her er aktivitetene dine for vinteren.
|
||||
{:else}
|
||||
Her er aktivitetene dine for vinteren.
|
||||
{/if}
|
||||
</p>
|
||||
{#if !showForm && !editing}
|
||||
<button class="primary" onclick={() => (showForm = true)}>Ny aktivitet</button>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue