From d04e0252f130dd8db381566156758759c3d0852c Mon Sep 17 00:00:00 2001 From: twotalesanimation <80506065+twotalesanimation@users.noreply.github.com> Date: Fri, 19 Jun 2026 12:00:04 +0200 Subject: [PATCH] copy shot names --- app/client/[token]/page.tsx | 126 +++++++++++++++++++++++++++++------- 1 file changed, 101 insertions(+), 25 deletions(-) diff --git a/app/client/[token]/page.tsx b/app/client/[token]/page.tsx index 89309f5..ee92f77 100644 --- a/app/client/[token]/page.tsx +++ b/app/client/[token]/page.tsx @@ -14,6 +14,8 @@ import { Package, RotateCcw, ArrowUpDown, + Copy, + Check, } from 'lucide-react'; import { cn } from '@/lib/utils'; import { Montserrat } from 'next/font/google'; @@ -156,6 +158,15 @@ export default function ClientPortalPage({ setStatusFilter((prev) => (prev === filter ? null : filter)); }; + const [copiedId, setCopiedId] = useState(null); + + const copyToClipboard = (text: string, id: string) => { + navigator.clipboard.writeText(text).then(() => { + setCopiedId(id); + setTimeout(() => setCopiedId(null), 1500); + }); + }; + useEffect(() => { params.then(({ token: t }) => { setToken(t); @@ -458,14 +469,27 @@ export default function ClientPortalPage({ /> )} -

- {item.label} - {item.description && ( - - {item.description} - - )} -

+
+

+ {item.label} + {item.description && ( + + {item.description} + + )} +

+ +
{ver?.createdAt && (

{formatDate(ver.createdAt)} @@ -481,9 +505,22 @@ export default function ClientPortalPage({ )} >

-

- {task.title} -

+
+

+ {task.title} +

+ +

{TASK_TYPE_LABELS[task.type] ?? task.type}

@@ -597,14 +634,27 @@ export default function ClientPortalPage({ />
)} -

- {shot.shotCode} - {shot.description && ( - - {shot.description} - - )} -

+
+

+ {shot.shotCode} + {shot.description && ( + + {shot.description} + + )} +

+ +
{shot.tasks.map((task) => { @@ -626,9 +676,22 @@ export default function ClientPortalPage({ )} >
-

- {task.title} -

+
+

+ {task.title} +

+ +

{TASK_TYPE_LABELS[task.type] ?? task.type}

@@ -719,9 +782,22 @@ export default function ClientPortalPage({

-

- {task.title} -

+
+

+ {task.title} +

+ +
{ver?.notes && (

“{ver.notes}”