From b39e1d555b7a1483bd4f8be37e48a7f4eaef36f5 Mon Sep 17 00:00:00 2001 From: Andres Date: Fri, 18 Apr 2025 01:14:27 +0200 Subject: [PATCH] add logs parser --- .../players/[id]/_components/games-table.tsx | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/src/app/players/[id]/_components/games-table.tsx b/src/app/players/[id]/_components/games-table.tsx index c3ab562..ea52746 100644 --- a/src/app/players/[id]/_components/games-table.tsx +++ b/src/app/players/[id]/_components/games-table.tsx @@ -26,6 +26,7 @@ import { ArrowUpCircle, MinusCircle, } from 'lucide-react' +import { useSession } from 'next-auth/react' import { useFormatter } from 'next-intl' import Link from 'next/link' import { useMemo, useState } from 'react' @@ -35,9 +36,32 @@ const numberFormatter = new Intl.NumberFormat('en-US', { }) const columnHelper = createColumnHelper() - +function getTranscript(gameNumber: number) { + return fetch( + `https://api.neatqueue.com/api/transcript/1226193436521267223/${gameNumber}` + ).then((res) => res.json()) +} +function openTranscript(gameNumber: number): void { + getTranscript(gameNumber) + .then((html: string) => { + const newWindow = window.open('', '_blank') + if (newWindow) { + newWindow.document.write(html) + newWindow.document.close() + } else { + console.error( + 'Failed to open new window - popup blocker may be enabled' + ) + } + }) + .catch((err) => { + console.error('Failed to load transcript:', err) + }) +} const useColumns = () => { const format = useFormatter() + const session = useSession() + const isAdmin = session.data?.user.role === 'admin' return useMemo( () => [ columnHelper.accessor('opponentName', { @@ -151,8 +175,27 @@ const useColumns = () => { ), id: 'time', }), + ...(isAdmin + ? [ + columnHelper.accessor('gameNum', { + header: 'Transcript', + meta: { className: 'pr-0' }, + cell: (info) => ( + + ), + id: 'transcript', + }), + ] + : []), ], - [] + [isAdmin] ) }