'use client' import { useState } from 'react' interface CrashRow { id: string event_type: string | null severity: string error_name: string | null error_message: string | null module: string | null app_version: string | null os: string | null device_id: string | null created_at: string } interface LicenseEventRow { id: string event_type: string license_id: string device_id: string | null ip_address: string | null app_version: string | null created_at: string } function formatDateTime(iso: string) { return new Date(iso).toLocaleString('tr-TR', { day: 'numeric', month: 'short', hour: '2-digit', minute: '2-digit' }) } function severityBadge(severity: string) { const map: Record = { fatal: 'bg-red-100 text-red-700 border-red-300 dark:bg-red-950/60 dark:text-red-400 dark:border-red-900', error: 'bg-red-50 text-red-700 border-red-200 dark:bg-red-950/40 dark:text-red-400 dark:border-red-900', warning: 'bg-amber-50 text-amber-700 border-amber-200 dark:bg-amber-950/40 dark:text-amber-400 dark:border-amber-900', info: 'bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-950/40 dark:text-blue-400 dark:border-blue-900', } const cls = map[severity] || 'bg-gray-50 text-gray-600 border-gray-200 dark:bg-gray-900 dark:text-gray-400 dark:border-gray-800' return {severity} } function TabButton({ active, onClick, children, count }: { active: boolean; onClick: () => void; children: React.ReactNode; count: number }) { return ( ) } export default function LogsTabs({ crashes, licenseEvents }: { crashes: CrashRow[]; licenseEvents: LicenseEventRow[] }) { const [tab, setTab] = useState<'crashes' | 'events'>('crashes') return (
setTab('crashes')} count={crashes.length}> Hata Kayıtları setTab('events')} count={licenseEvents.length}> Lisans Olayları
{tab === 'crashes' && (
{['Zaman', 'Önem', 'Tür', 'Hata', 'Modül', 'Sürüm / OS'].map((h) => ( ))} {crashes.map((c) => ( ))} {crashes.length === 0 && ( )}
{h}
{formatDateTime(c.created_at)} {severityBadge(c.severity)} {c.event_type} {c.error_name ? `${c.error_name}: ` : ''}{c.error_message || '—'} {c.module || '—'} v{c.app_version} · {c.os || '—'}
Hata kaydı yok.
)} {tab === 'events' && (
{['Zaman', 'Olay', 'Lisans', 'Cihaz', 'IP', 'Sürüm'].map((h) => ( ))} {licenseEvents.map((e) => ( ))} {licenseEvents.length === 0 && ( )}
{h}
{formatDateTime(e.created_at)} {e.event_type} {e.license_id?.slice(0, 8)}… {e.device_id ? `${e.device_id.slice(0, 8)}…` : '—'} {e.ip_address || '—'} {e.app_version || '—'}
Lisans olayı yok.
)}
) }