'use client';
import { getSystemLog } from '@/services/admin/tool';
import { useQuery } from '@tanstack/react-query';
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from '@workspace/ui/components/accordion';
import { Button } from '@workspace/ui/components/button';
import {
Dialog,
DialogContent,
DialogFooter,
DialogHeader,
DialogTitle,
DialogTrigger,
} from '@workspace/ui/components/dialog';
import { ScrollArea } from '@workspace/ui/components/scroll-area';
import { Icon } from '@workspace/ui/custom-components/icon';
import { useTranslations } from 'next-intl';
import { useState } from 'react';
const getLogLevelColor = (level: string) => {
const colorMap: { [key: string]: string } = {
INFO: 'bg-blue-100 text-blue-800 hover:bg-blue-200',
WARN: 'bg-yellow-100 text-yellow-800 hover:bg-yellow-200',
ERROR: 'bg-red-100 text-red-800 hover:bg-red-200',
};
return colorMap[level] || 'bg-gray-100 text-gray-800 hover:bg-gray-200';
};
interface SystemLogsDialogProps {
trigger?: React.ReactNode;
variant?: 'default' | 'outline' | 'ghost' | 'secondary';
size?: 'sm' | 'default' | 'lg';
}
export default function SystemLogsDialog({
trigger,
variant = 'outline',
size = 'sm',
}: SystemLogsDialogProps) {
const t = useTranslations('tool');
const [open, setOpen] = useState(false);
const {
data: logs,
refetch,
isLoading,
} = useQuery({
queryKey: ['getSystemLog'],
queryFn: async () => {
const { data } = await getSystemLog();
return data.data?.list || [];
},
enabled: open,
});
const defaultTrigger = (
);
return (
);
}