import { Head, router } from '@inertiajs/react';
import { format } from 'date-fns';
import { Download } from 'lucide-react';
import { useState } from 'react';
import type { PaginationState } from '@/components/data-table';
import { DataTable } from '@/components/data-table';
import type { FilterField } from '@/components/filter-dialog';
import { FilterDialog } from '@/components/filter-dialog';
import { PageHeader } from '@/components/page-header';
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
import {
Dialog,
DialogContent,
DialogDescription,
DialogHeader,
DialogTitle,
} from '@/components/ui/dialog';
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from '@/components/ui/select';
import { useServerTable } from '@/hooks/use-server-table';
import { index as logsIndex, download } from '@/routes/admin/developer/logs';
import type { LogEntry, LogFile } from '@/types/log-entry';
import { LogLevels } from '@/types/log-entry';
import { createLogColumns } from './columns';
type Props = {
entries: {
data: LogEntry[];
current_page: number;
last_page: number;
per_page: number;
total: number;
} | null;
files: LogFile[];
selectedFile: string | null;
filters: {
file?: string;
level?: string;
};
};
function formatFileSize(bytes: number): string {
if (bytes < 1024) {
return `${bytes} B`;
}
if (bytes < 1024 * 1024) {
return `${(bytes / 1024).toFixed(1)} KB`;
}
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
}
export default function LogIndex({
entries,
files,
selectedFile,
filters,
}: Props) {
const [detail, setDetail] = useState
Belum ada file log yang tersedia.
)}