From 23c9e75dd200626d90a090783cad07cc91700bb6 Mon Sep 17 00:00:00 2001 From: viown <48097677+viown@users.noreply.github.com> Date: Tue, 14 Jan 2025 23:42:26 +0300 Subject: [PATCH] Update to use list --- .../features/logs/components/LogItem.tsx | 46 ---------------- .../features/logs/components/LogItemList.tsx | 53 +++++++++++++++++++ src/apps/dashboard/routes/logs/index.tsx | 11 ++-- 3 files changed, 56 insertions(+), 54 deletions(-) delete mode 100644 src/apps/dashboard/features/logs/components/LogItem.tsx create mode 100644 src/apps/dashboard/features/logs/components/LogItemList.tsx diff --git a/src/apps/dashboard/features/logs/components/LogItem.tsx b/src/apps/dashboard/features/logs/components/LogItem.tsx deleted file mode 100644 index 4bf871c0c9..0000000000 --- a/src/apps/dashboard/features/logs/components/LogItem.tsx +++ /dev/null @@ -1,46 +0,0 @@ -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 = ({ 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 ( - - - - - - - - ); -}; - -export default LogItem; diff --git a/src/apps/dashboard/features/logs/components/LogItemList.tsx b/src/apps/dashboard/features/logs/components/LogItemList.tsx new file mode 100644 index 0000000000..702c4594b4 --- /dev/null +++ b/src/apps/dashboard/features/logs/components/LogItemList.tsx @@ -0,0 +1,53 @@ +import React, { FunctionComponent } from 'react'; +import type { LogFile } from '@jellyfin/sdk/lib/generated-client/models/log-file'; +import { Box, List, ListItem, ListItemButton, ListItemText, useTheme } from '@mui/material'; +import { useApi } from 'hooks/useApi'; +import datetime from 'scripts/datetime'; + +type LogItemProps = { + logs: LogFile[]; +}; + +const LogItemList: FunctionComponent = ({ logs }: LogItemProps) => { + const { api } = useApi(); + const theme = useTheme(); + + const getLogFileUrl = (logFile: LogFile) => { + 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 = (logFile: LogFile) => { + const date = datetime.parseISO8601Date(logFile.DateModified, true); + return datetime.toLocaleDateString(date) + ' ' + datetime.getDisplayTime(date); + }; + + return ( + + + {logs.map(log => { + return ( + + + + + + ); + })} + + + ); +}; + +export default LogItemList; diff --git a/src/apps/dashboard/routes/logs/index.tsx b/src/apps/dashboard/routes/logs/index.tsx index 1e509f2314..6f9826c37e 100644 --- a/src/apps/dashboard/routes/logs/index.tsx +++ b/src/apps/dashboard/routes/logs/index.tsx @@ -1,6 +1,5 @@ import React, { ChangeEvent, useCallback, useEffect, useState } from 'react'; import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; -import LogItem from 'apps/dashboard/features/logs/components/LogItem'; import Loading from 'components/loading/LoadingComponent'; import Page from 'components/Page'; import globalize from 'lib/globalize'; @@ -11,6 +10,7 @@ import { useServerLogs } from 'apps/dashboard/features/logs/api/useServerLogs'; import { useConfiguration } from 'hooks/useConfiguration'; import type { ServerConfiguration } from '@jellyfin/sdk/lib/generated-client/models/server-configuration'; import { ActionData } from 'types/actionData'; +import LogItemList from 'apps/dashboard/features/logs/components/LogItemList'; export const action = async ({ request }: ActionFunctionArgs) => { const api = ServerConnections.getCurrentApi(); @@ -69,7 +69,7 @@ const Logs = () => { setIsSubmitting(true); }, []); - if (isLogEntriesPending || isConfigurationPending || loading) { + if (isLogEntriesPending || isConfigurationPending || loading || !logs) { return ; } @@ -122,12 +122,7 @@ const Logs = () => { - {logs?.map(log => { - return ; - })} +