From a763a3e82d1147934895e2594079424c3f97d2d6 Mon Sep 17 00:00:00 2001 From: NotARoomba Date: Tue, 3 Mar 2026 18:00:35 -0500 Subject: [PATCH] copy --- backend/src/routes/admin.ts | 1 + frontend/src/routes/admin/orders/+page.svelte | 40 +++++++++++++------ 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/backend/src/routes/admin.ts b/backend/src/routes/admin.ts index 916c142..a2517aa 100644 --- a/backend/src/routes/admin.ts +++ b/backend/src/routes/admin.ts @@ -2323,6 +2323,7 @@ admin.get("/orders", async ({ headers, query, status }) => { return rows.map(({ userEmail, ...row }) => ({ ...row, + email: userEmail, hackatimeBanned: banMap.get(userEmail ?? "") ?? false, })); } catch (err) { diff --git a/frontend/src/routes/admin/orders/+page.svelte b/frontend/src/routes/admin/orders/+page.svelte index b15aff9..7ff13ec 100644 --- a/frontend/src/routes/admin/orders/+page.svelte +++ b/frontend/src/routes/admin/orders/+page.svelte @@ -44,6 +44,7 @@ isFulfilled: boolean; shippingAddress: string | null; phone: string | null; + email: string | null; createdAt: string; itemId: number; itemName: string; @@ -67,6 +68,11 @@ return `${addr.firstName} ${addr.lastName}`.trim(); } + async function copyField(value: string) { + await navigator.clipboard.writeText(value); + showToast('Copied!', 'success'); + } + interface User { id: number; role: string; @@ -682,24 +688,28 @@ class="grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 blur-sm transition-all duration-300 select-none group-hover/addr:blur-none group-hover/addr:select-auto" > name - {formatName(addr)} + copyField(formatName(addr))}>{formatName(addr)} address 1 - {addr.address1} + copyField(addr.address1)}>{addr.address1} {#if addr.address2} address 2 - {addr.address2} + copyField(addr.address2!)}>{addr.address2} {/if} city - {addr.city} + copyField(addr.city)}>{addr.city} state - {addr.state} + copyField(addr.state)}>{addr.state} zip - {addr.postalCode} + copyField(addr.postalCode)}>{addr.postalCode} country - {addr.country} + copyField(addr.country)}>{addr.country} {#if order.phone || addr.phone} phone - {order.phone || addr.phone} + copyField((order.phone || addr.phone)!)}>{order.phone || addr.phone} + {/if} + {#if order.email} + email + copyField(order.email!)}>{order.email} {/if} @@ -708,11 +718,17 @@

no shipping address provided

{/if} - {#if order.phone && !parseShippingAddress(order.shippingAddress)} + {#if (order.phone || order.email) && !parseShippingAddress(order.shippingAddress)}
-
- phone - {order.phone} +
+ {#if order.phone} + phone + copyField(order.phone!)}>{order.phone} + {/if} + {#if order.email} + email + copyField(order.email!)}>{order.email} + {/if}
{/if}