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 };