'use client'; import { ColumnDef, Row } from '@tanstack/react-table'; import { Button } from '@/components/ui/button'; import { EyeIcon, LoaderCircleIcon } from 'lucide-react'; import type { ServerLog } from '@/types/server-log'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog'; import { useState } from 'react'; import axios from 'axios'; import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area'; const LogActionCell = ({ row }: { row: Row }) => { const [open, setOpen] = useState(false); const [loading, setLoading] = useState(false); const [content, setContent] = useState(''); const showLog = async () => { setLoading(true); try { const response = await axios.get(route('logs.show', { server: row.original.server_id, log: row.original.id })); setContent(response.data); } catch (error: unknown) { console.error(error); if (error instanceof Error) { setContent(error.message); } else { setContent('An unknown error occurred.'); } } finally { setLoading(false); setOpen(true); } }; return (
View Log This is all content of the log {content}
); }; export const columns: ColumnDef[] = [ { accessorKey: 'name', header: 'Event', enableColumnFilter: true, }, { accessorKey: 'created_at_by_timezone', header: 'Created At', enableSorting: true, }, { id: 'actions', enableColumnFilter: false, enableSorting: false, cell: ({ row }) => , }, ];