From bdb108d67e8be93fce0c7d616e7fcb85bd4bf26e Mon Sep 17 00:00:00 2001 From: Brandon Farmer Date: Wed, 13 Feb 2019 11:42:38 -0800 Subject: [PATCH] Use react router for members tab --- ui/src/index.tsx | 5 + .../containers/OrgMembersIndex.tsx | 100 ++++++++++++++++++ .../containers/OrganizationView.tsx | 58 +--------- 3 files changed, 106 insertions(+), 57 deletions(-) create mode 100644 ui/src/organizations/containers/OrgMembersIndex.tsx diff --git a/ui/src/index.tsx b/ui/src/index.tsx index 3447683d09..ea6e5b1174 100644 --- a/ui/src/index.tsx +++ b/ui/src/index.tsx @@ -40,6 +40,7 @@ import GetMe from 'src/shared/containers/GetMe' import SourcesPage from 'src/sources/components/SourcesPage' import ConfigurationPage from 'src/configuration/components/ConfigurationPage' import OrgDashboardsIndex from 'src/organizations/containers/OrgDashboardsIndex' +import OrgMembersIndex from 'src/organizations/containers/OrgMembersIndex' import OnboardingWizardPage from 'src/onboarding/containers/OnboardingWizardPage' @@ -124,6 +125,10 @@ class Root extends PureComponent { path="dashboards_tab" component={OrgDashboardsIndex} /> + { + const allMembers = await Promise.all([ + client.organizations.owners(org.id), + client.organizations.members(org.id), + ]) + + return [].concat(...allMembers) +} + +@ErrorHandling +class OrgMembersIndex extends Component { + constructor(props) { + super(props) + } + + public render() { + const {org} = this.props + + return ( + + + +
+ + + + + + organization={org} + fetcher={getOwnersAndMembers} + > + {(members, loading) => ( + } + > + + + )} + + + + +
+
+
+ ) + } +} + +const mstp = (state: AppState, props: Props) => { + const {orgs} = state + const org = orgs.find(o => o.id === props.params.orgID) + return { + org, + } +} + +export default connect(mstp)(withRouter<{}>(OrgMembersIndex)) diff --git a/ui/src/organizations/containers/OrganizationView.tsx b/ui/src/organizations/containers/OrganizationView.tsx index 2c2ad8fb44..dc621a8afb 100644 --- a/ui/src/organizations/containers/OrganizationView.tsx +++ b/ui/src/organizations/containers/OrganizationView.tsx @@ -5,7 +5,6 @@ import {connect} from 'react-redux' import _ from 'lodash' // APIs -import {getDashboards} from 'src/organizations/apis' import {client} from 'src/utils/api' const getCollectors = async (org: Organization) => { @@ -28,20 +27,17 @@ import * as notifyActions from 'src/shared/actions/notifications' import {Page} from 'src/pageLayout' import {SpinnerContainer, TechnoSpinner} from 'src/clockface' import TabbedPageSection from 'src/shared/components/tabbed_page/TabbedPageSection' -import Members from 'src/organizations/components/Members' import Variables from 'src/organizations/components/Variables' import OrgTasksPage from 'src/organizations/components/OrgTasksPage' import Collectors from 'src/organizations/components/Collectors' import Scrapers from 'src/organizations/components/Scrapers' import GetOrgResources from 'src/organizations/components/GetOrgResources' -import OrgDashboardIndex from 'src/organizations/components/Dashboards' import OrganizationTabs from 'src/organizations/components/OrganizationTabs' import OrgHeader from 'src/organizations/containers/OrgHeader' // Types -import {AppState, Dashboard} from 'src/types/v2' +import {AppState} from 'src/types/v2' import { - ResourceOwner, Bucket, Organization, Telegraf, @@ -90,49 +86,6 @@ class OrganizationView extends PureComponent { activeTabUrl={params.tab} orgID={org.id} > - - - organization={org} - fetcher={this.getOwnersAndMembers} - > - {(members, loading) => ( - } - > - - - )} - - - - - organization={org} - fetcher={getDashboards} - > - {(dashboards, loading, fetch) => ( - } - > - - - )} - - { ) } - - private getOwnersAndMembers = async (org: Organization) => { - const allMembers = await Promise.all([ - client.organizations.owners(org.id), - client.organizations.members(org.id), - ]) - - return [].concat(...allMembers) - } } const mstp = (state: AppState, props: WithRouterProps) => {