import { Component, Fragment } from 'react'; import { WithTheme, withTheme } from '@material-ui/core/styles'; import { Avatar, Divider, List, ListItem, ListItemAvatar, ListItemText } from '@material-ui/core'; import DNSIcon from '@material-ui/icons/Dns'; import WifiIcon from '@material-ui/icons/Wifi'; import RouterIcon from '@material-ui/icons/Router'; import SettingsInputComponentIcon from '@material-ui/icons/SettingsInputComponent'; import SettingsInputAntennaIcon from '@material-ui/icons/SettingsInputAntenna'; import DeviceHubIcon from '@material-ui/icons/DeviceHub'; import RefreshIcon from '@material-ui/icons/Refresh'; import { RestFormProps, FormActions, FormButton, HighlightAvatar } from '../components'; import { networkStatus, networkStatusHighlight, isConnected, isWiFi, isEthernet } from './NetworkStatus'; import { NetworkStatus } from './types'; type NetworkStatusFormProps = RestFormProps & WithTheme; class NetworkStatusForm extends Component { dnsServers(status: NetworkStatus) { if (!status.dns_ip_1) { return 'none'; } if (!status.dns_ip_2 || status.dns_ip_2 === '0.0.0.0') { return status.dns_ip_1; } return status.dns_ip_1 + ', ' + status.dns_ip_2; } IPs(status: NetworkStatus) { if ( !status.local_ipv6 || status.local_ipv6 === '0000:0000:0000:0000:0000:0000:0000:0000' ) { return status.local_ip; } if (!status.local_ip || status.local_ip === '0.0.0.0') { return status.local_ipv6; } return status.local_ip + ', ' + status.local_ipv6; } createListItems() { const { data, theme } = this.props; return ( {isWiFi(data) && } {isEthernet(data) && } {isWiFi(data) && ( )} {isConnected(data) && ( IP # )} ); } render() { return ( {this.createListItems()} } variant="contained" color="secondary" onClick={this.props.loadData} > Refresh ); } } export default withTheme(NetworkStatusForm);