show ntp time in status, use useInterval everywhere instead of alova's AutoRequest

This commit is contained in:
proddy
2024-12-21 16:30:05 +01:00
parent 6d22f6aebf
commit b0c29b57c7
17 changed files with 80 additions and 63 deletions

View File

@@ -30,13 +30,15 @@ import { API } from 'api/app';
import { readSystemStatus } from 'api/system';
import { dialogStyle } from 'CustomTheme';
import { useAutoRequest, useRequest } from 'alova/client';
import { useRequest } from 'alova/client';
import { type APIcall, busConnectionStatus } from 'app/main/types';
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
import ListMenuItem from 'components/layout/ListMenuItem';
import { AuthenticatedContext } from 'contexts/authentication';
import { useI18nContext } from 'i18n/i18n-react';
import { NTPSyncStatus, NetworkConnectionStatus } from 'types';
import { useInterval } from 'utils';
import { formatDateTime } from 'utils/time';
import RestartMonitor from './RestartMonitor';
@@ -58,9 +60,8 @@ const SystemStatus = () => {
data,
send: loadData,
error
} = useAutoRequest(readSystemStatus, {
} = useRequest(readSystemStatus, {
initialData: [],
pollingTime: 3000,
async middleware(_, next) {
if (!restarting) {
await next();
@@ -68,6 +69,10 @@ const SystemStatus = () => {
}
});
useInterval(() => {
void loadData();
});
const theme = useTheme();
const formatDurationSec = (duration_sec: number) => {
@@ -134,7 +139,7 @@ const SystemStatus = () => {
case NTPSyncStatus.NTP_INACTIVE:
return LL.INACTIVE(0);
case NTPSyncStatus.NTP_ACTIVE:
return LL.ACTIVE();
return LL.ACTIVE() + ' (' + formatDateTime(data.ntp_time ?? '') + ')';
default:
return LL.UNKNOWN();
}
@@ -301,7 +306,7 @@ const SystemStatus = () => {
icon={DeviceHubIcon}
bgcolor={activeHighlight(data.mqtt_status)}
label="MQTT"
text={data.mqtt_status ? LL.ACTIVE() : LL.INACTIVE(0)}
text={data.mqtt_status ? LL.CONNECTED(0) : LL.INACTIVE(0)}
to="/status/mqtt"
/>