import React from 'react'; import PropTypes from 'prop-types'; import forceArray from 'force-array'; import { compose, graphql } from 'react-apollo'; import find from 'lodash.find'; import get from 'lodash.get'; import { ViewContainer, StatusLoader, Message, MessageDescription, MessageTitle, Table, TableThead, TableTr, TableTh, TableTbody, P } from 'joyent-ui-toolkit'; import GetNetworks from '@graphql/list-networks.gql'; import { Network as InstanceNetwork } from '@components/instances'; const Networks = ({ networks = [], loading, error }) => { const values = forceArray(networks); const _loading = !(loading && !values.length) ? null : ; const _networks = _loading && !values.length ? null : (

Name

Gateway

Subnet

Resolvers

{values.map(network => ( ))}
); const _error = error && !values.length && !_loading ? ( Ooops! An error occurred while loading your instance networks ) : null; return ( {_loading} {_error} {_networks} ); }; Networks.propTypes = { loading: PropTypes.bool }; export default compose( graphql(GetNetworks, { options: ({ match }) => ({ pollInterval: 1000, variables: { name: get(match, 'params.instance') } }), props: ({ data: { loading, error, variables, ...rest } }) => ({ networks: get( find(get(rest, 'machines', []), ['name', variables.name]), 'networks', [] ), loading, error }) }) )(Networks);