import { Fragment } from 'react'; import DockerNetworkHelper from '@/docker/helpers/networkHelper'; import { Authorized } from '@/portainer/hooks/useUser'; import { Table, TableContainer, TableTitle } from '@@/datatables'; import { DetailsTable } from '@@/DetailsTable'; import { Button } from '@@/buttons'; import { Icon } from '@@/Icon'; import { isSystemNetwork } from '../network.helper'; import { DockerNetwork, IPConfig } from '../types'; interface Props { network: DockerNetwork; onRemoveNetworkClicked: () => void; } export function NetworkDetailsTable({ network, onRemoveNetworkClicked, }: Props) { const allowRemoveNetwork = !isSystemNetwork(network.Name); const ipv4Configs: IPConfig[] = DockerNetworkHelper.getIPV4Configs( network.IPAM?.Config ); const ipv6Configs: IPConfig[] = DockerNetworkHelper.getIPV6Configs( network.IPAM?.Config ); return (
{/* networkRowContent */} {network.Name} {network.Id} {allowRemoveNetwork && ( )} {network.Driver} {network.Scope} {String(network.Attachable)} {String(network.Internal)} {/* IPV4 ConfigRowContent */} {ipv4Configs.map((config) => ( {`IPV4 Gateway${getConfigDetails(config.Gateway)}`} {`IPV4 Excluded IPs${getAuxiliaryAddresses( config.AuxiliaryAddresses )}`} ))} {/* IPV6 ConfigRowContent */} {ipv6Configs.map((config) => ( {`IPV6 Gateway${getConfigDetails(config.Gateway)}`} {`IPV6 Excluded IPs${getAuxiliaryAddresses( config.AuxiliaryAddresses )}`} ))}
); function getConfigDetails(configValue?: string) { return configValue ? ` - ${configValue}` : ''; } function getAuxiliaryAddresses(auxiliaryAddresses?: object) { return auxiliaryAddresses ? ` - ${Object.values(auxiliaryAddresses).join(' - ')}` : ''; } }