import React, { Component } from 'react'; import { I18n, i18nMark } from '@lingui/react'; import { t } from '@lingui/macro'; import { Switch, Route, withRouter, Redirect, Link } from 'react-router-dom'; import { Card, CardHeader, PageSection, } from '@patternfly/react-core'; import { TimesIcon } from '@patternfly/react-icons'; import { withNetwork } from '../../../../contexts/Network'; import NotifyAndRedirect from '../../../../components/NotifyAndRedirect'; import OrganizationAccess from './OrganizationAccess'; import OrganizationDetail from './OrganizationDetail'; import OrganizationEdit from './OrganizationEdit'; import OrganizationNotifications from './OrganizationNotifications'; import OrganizationTeams from './OrganizationTeams'; import RoutedTabs from '../../../../components/Tabs/RoutedTabs'; class Organization extends Component { constructor (props) { super(props); this.state = { organization: null, error: false, loading: true, }; this.fetchOrganization = this.fetchOrganization.bind(this); } componentDidMount () { this.fetchOrganization(); } async componentDidUpdate (prevProps) { const { location } = this.props; if (location !== prevProps.location) { await this.fetchOrganization(); } } async fetchOrganization () { const { match, setBreadcrumb, api, handleHttpError } = this.props; try { const { data } = await api.getOrganizationDetails(parseInt(match.params.id, 10)); setBreadcrumb(data); this.setState({ organization: data, loading: false }); } catch (error) { handleHttpError(error) || this.setState({ error: true, loading: false }); } } render () { const { location, match, history } = this.props; const { organization, error, loading } = this.state; const tabsPaddingOverride = { padding: '0' }; let cardHeader = ( loading ? '' : ( {({ i18n }) => ( )} )); if (!match) { cardHeader = null; } if (location.pathname.endsWith('edit')) { cardHeader = null; } return ( { cardHeader } {organization && ( ( )} /> )} {organization && ( ( )} /> )} ( )} /> ( )} /> ( )} /> {organization && } {error ? 'error!' : ''} {loading ? 'loading...' : ''} ); } } export default withNetwork(withRouter(Organization)); export { Organization as _Organization };