import ComputerIcon from '@mui/icons-material/Computer'; import DeviceHubIcon from '@mui/icons-material/DeviceHub'; import SettingsInputAntennaIcon from '@mui/icons-material/SettingsInputAntenna'; import { Avatar, Divider, List, ListItem, ListItemAvatar, ListItemText, useTheme } from '@mui/material'; import type { Theme } from '@mui/material'; import * as APApi from 'api/ap'; import { useRequest } from 'alova/client'; import { FormLoader, SectionContent, useLayoutTitle } from 'components'; import { useI18nContext } from 'i18n/i18n-react'; import type { APStatusType } from 'types'; import { APNetworkStatus } from 'types'; import { useInterval } from 'utils'; export const apStatusHighlight = ({ status }: APStatusType, theme: Theme) => { switch (status) { case APNetworkStatus.ACTIVE: return theme.palette.success.main; case APNetworkStatus.INACTIVE: return theme.palette.info.main; case APNetworkStatus.LINGERING: return theme.palette.warning.main; default: return theme.palette.warning.main; } }; const getApStatusText = ( status: APNetworkStatus, LL: ReturnType['LL'] ) => { switch (status) { case APNetworkStatus.ACTIVE: return LL.ACTIVE(); case APNetworkStatus.INACTIVE: return LL.INACTIVE(0); case APNetworkStatus.LINGERING: return 'Lingering until idle'; default: return LL.UNKNOWN(); } }; const APStatus = () => { const { data, send: loadData, error } = useRequest(APApi.readAPStatus); const { LL } = useI18nContext(); const theme = useTheme(); useLayoutTitle(LL.ACCESS_POINT(0)); useInterval(() => { void loadData(); }); if (!data) { return ( ); } return ( IP ); }; export default APStatus;