import { Theme } from '@material-ui/core'; import { NetworkStatus, NetworkConnectionStatus } from './types'; export const isConnected = ({ status }: NetworkStatus) => { return ( status === NetworkConnectionStatus.WIFI_STATUS_CONNECTED || status === NetworkConnectionStatus.ETHERNET_STATUS_CONNECTED ); }; export const isWiFi = ({ status }: NetworkStatus) => status === NetworkConnectionStatus.WIFI_STATUS_CONNECTED; export const isEthernet = ({ status }: NetworkStatus) => status === NetworkConnectionStatus.ETHERNET_STATUS_CONNECTED; export const networkStatusHighlight = ( { status }: NetworkStatus, theme: Theme ) => { switch (status) { case NetworkConnectionStatus.WIFI_STATUS_IDLE: case NetworkConnectionStatus.WIFI_STATUS_DISCONNECTED: case NetworkConnectionStatus.WIFI_STATUS_NO_SHIELD: return theme.palette.info.main; case NetworkConnectionStatus.WIFI_STATUS_CONNECTED: case NetworkConnectionStatus.ETHERNET_STATUS_CONNECTED: return theme.palette.success.main; case NetworkConnectionStatus.WIFI_STATUS_CONNECT_FAILED: case NetworkConnectionStatus.WIFI_STATUS_CONNECTION_LOST: return theme.palette.error.main; default: return theme.palette.warning.main; } }; export const networkStatus = ({ status }: NetworkStatus) => { switch (status) { case NetworkConnectionStatus.WIFI_STATUS_NO_SHIELD: return 'Inactive'; case NetworkConnectionStatus.WIFI_STATUS_IDLE: return 'Idle'; case NetworkConnectionStatus.WIFI_STATUS_NO_SSID_AVAIL: return 'No SSID Available'; case NetworkConnectionStatus.WIFI_STATUS_CONNECTED: return 'Connected (WiFi)'; case NetworkConnectionStatus.ETHERNET_STATUS_CONNECTED: return 'Connected (Ethernet)'; case NetworkConnectionStatus.WIFI_STATUS_CONNECT_FAILED: return 'Connection Failed'; case NetworkConnectionStatus.WIFI_STATUS_CONNECTION_LOST: return 'Connection Lost'; case NetworkConnectionStatus.WIFI_STATUS_DISCONNECTED: return 'Disconnected'; default: return 'Unknown'; } };