Skip to content

Commit 0163100

Browse files
authored
Show user email on admin page while editing display name (#387)
1 parent 95ff300 commit 0163100

File tree

2 files changed

+57
-41
lines changed

2 files changed

+57
-41
lines changed

frontend/src/routes/admin/+page.svelte

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -397,42 +397,44 @@
397397
{#each filteredUsers as user (user.id)}
398398
<div class="rounded-lg border p-2 px-3">
399399
<div class="flex items-center justify-between">
400-
<div class="flex items-center gap-2">
401-
{#if editingUserId === user.id}
402-
<input
403-
class="w-48 rounded-md border bg-background px-2 py-0.5 text-sm"
404-
bind:value={editingName}
405-
onkeydown={(e) => {
406-
if (e.key === 'Enter') saveEditingName();
407-
if (e.key === 'Escape') editingUserId = null;
408-
}}
409-
/>
410-
<button
411-
class="rounded p-0.5 hover:bg-muted"
412-
onclick={saveEditingName}
413-
title="Save"
414-
>
415-
<Check class="h-4 w-4 text-green-600" />
416-
</button>
417-
<button
418-
class="rounded p-0.5 hover:bg-muted"
419-
onclick={() => (editingUserId = null)}
420-
title="Cancel"
421-
>
422-
<X class="h-4 w-4 text-muted-foreground" />
423-
</button>
424-
{:else}
425-
<span class="font-medium">{user.display_name}</span>
426-
<button
427-
class="rounded p-0.5 opacity-40 hover:bg-muted hover:opacity-100"
428-
onclick={() => startEditingName(user)}
429-
title="Edit display name"
430-
>
431-
<Pencil class="h-3.5 w-3.5" />
432-
</button>
433-
{#if user.email}
434-
<span class="text-sm text-muted-foreground">{user.email}</span>
400+
<div class="flex flex-col gap-1">
401+
<div class="flex items-center gap-2">
402+
{#if editingUserId === user.id}
403+
<input
404+
class="w-48 rounded-md border bg-background px-2 py-0.5 text-sm"
405+
bind:value={editingName}
406+
onkeydown={(e) => {
407+
if (e.key === 'Enter') saveEditingName();
408+
if (e.key === 'Escape') editingUserId = null;
409+
}}
410+
/>
411+
<button
412+
class="rounded p-0.5 hover:bg-muted"
413+
onclick={saveEditingName}
414+
title="Save"
415+
>
416+
<Check class="h-4 w-4 text-green-600" />
417+
</button>
418+
<button
419+
class="rounded p-0.5 hover:bg-muted"
420+
onclick={() => (editingUserId = null)}
421+
title="Cancel"
422+
>
423+
<X class="h-4 w-4 text-muted-foreground" />
424+
</button>
425+
{:else}
426+
<span class="font-medium">{user.display_name}</span>
427+
<button
428+
class="rounded p-0.5 opacity-40 hover:bg-muted hover:opacity-100"
429+
onclick={() => startEditingName(user)}
430+
title="Edit display name"
431+
>
432+
<Pencil class="h-3.5 w-3.5" />
433+
</button>
435434
{/if}
435+
</div>
436+
{#if user.email}
437+
<span class="text-sm text-muted-foreground">{user.email}</span>
436438
{/if}
437439
</div>
438440
<div class="flex items-center gap-2">

frontend/src/routes/admin/cohorts/[name]/+page.svelte

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@
5353
return globalUsers.filter((u) => !memberUserIds.has(u.id));
5454
});
5555
56-
let selectedUserName = $derived(
57-
selectedUserId ? (globalUsers.find((u) => u.id === selectedUserId)?.display_name ?? '') : ''
56+
let selectedUser = $derived(
57+
selectedUserId ? globalUsers.find((u) => u.id === selectedUserId) : null
5858
);
5959
6060
function closePopoverAndFocusTrigger() {
@@ -239,8 +239,17 @@
239239
role="combobox"
240240
bind:ref={userTriggerRef}
241241
>
242-
{selectedUserId ? selectedUserName : 'Search users...'}
243-
<ChevronsUpDown class="ml-2 h-4 w-4 shrink-0 opacity-50" />
242+
<div class="flex flex-col text-left text-sm">
243+
{#if selectedUser}
244+
<span>{selectedUser.display_name}</span>
245+
{#if selectedUser.email}
246+
<span class="text-xs text-muted-foreground">{selectedUser.email}</span>
247+
{/if}
248+
{:else}
249+
Search users...
250+
{/if}
251+
</div>
252+
<ChevronsUpDown class="h-4 w-4 shrink-0 opacity-50" />
244253
</Popover.Trigger>
245254
<Popover.Content class="w-64 p-0">
246255
<Command.Root>
@@ -256,10 +265,15 @@
256265
closePopoverAndFocusTrigger();
257266
}}
258267
>
259-
{user.display_name}
268+
<div class="flex flex-1 flex-col">
269+
<span>{user.display_name}</span>
270+
{#if user.email}
271+
<span class="text-xs text-muted-foreground">{user.email}</span>
272+
{/if}
273+
</div>
260274
<Check
261275
class={cn(
262-
'ml-auto h-4 w-4',
276+
'h-4 w-4 shrink-0',
263277
user.id !== selectedUserId && 'text-transparent'
264278
)}
265279
/>

0 commit comments

Comments
 (0)