Files
jellyfin-web/src/apps/dashboard/features/logs/components/LogItem.tsx
T
2025-01-15 14:11:37 +03:00

47 lines
1.4 KiB
TypeScript

import React, { FunctionComponent } from 'react';
import type { LogFile } from '@jellyfin/sdk/lib/generated-client/models/log-file';
import { Card, CardActionArea, CardContent, ListItemText } from '@mui/material';
import { useApi } from 'hooks/useApi';
import datetime from 'scripts/datetime';
type LogItemProps = {
logFile: LogFile;
};
const LogItem: FunctionComponent<LogItemProps> = ({ logFile }: LogItemProps) => {
const { api } = useApi();
const getLogFileUrl = () => {
if (!api) return '';
let url = api.basePath + '/System/Logs/Log';
url += '?name=' + encodeURIComponent(String(logFile.Name));
url += '&api_key=' + encodeURIComponent(api.accessToken);
return url;
};
const getDate = () => {
const date = datetime.parseISO8601Date(logFile.DateModified, true);
return datetime.toLocaleDateString(date) + ' ' + datetime.getDisplayTime(date);
};
return (
<Card>
<CardActionArea href={getLogFileUrl()} target='_blank'>
<CardContent>
<ListItemText
primary={logFile.Name}
primaryTypographyProps={{ variant: 'h3' }}
secondary={getDate()}
secondaryTypographyProps={{ variant: 'body1' }}
/>
</CardContent>
</CardActionArea>
</Card>
);
};
export default LogItem;