// @flow import * as React from 'react'; import invariant from 'invariant'; import { observable } from 'mobx'; import { observer, inject } from 'mobx-react'; import { PlusIcon } from 'outline-icons'; import Empty from 'components/Empty'; import Modal from 'components/Modal'; import Button from 'components/Button'; import Invite from 'scenes/Invite'; import CenteredContent from 'components/CenteredContent'; import PageTitle from 'components/PageTitle'; import HelpText from 'components/HelpText'; import PaginatedList from 'components/PaginatedList'; import Tabs, { Separator } from 'components/Tabs'; import Tab from 'components/Tab'; import UserListItem from './components/UserListItem'; import AuthStore from 'stores/AuthStore'; import UsersStore from 'stores/UsersStore'; import PoliciesStore from 'stores/PoliciesStore'; type Props = { auth: AuthStore, users: UsersStore, policies: PoliciesStore, match: Object, }; @observer class People extends React.Component { @observable inviteModalOpen: boolean = false; handleInviteModalOpen = () => { this.inviteModalOpen = true; }; handleInviteModalClose = () => { this.inviteModalOpen = false; }; fetchPage = params => { return this.props.users.fetchPage({ ...params, includeSuspended: true }); }; render() { const { auth, policies, match } = this.props; const { filter } = match.params; const currentUser = auth.user; const team = auth.team; invariant(currentUser, 'User should exist'); invariant(team, 'Team should exist'); let users = this.props.users.active; if (filter === 'all') { users = this.props.users.all; } else if (filter === 'admins') { users = this.props.users.admins; } else if (filter === 'suspended') { users = this.props.users.suspended; } else if (filter === 'invited') { users = this.props.users.invited; } const can = policies.abilities(team.id); return (

People

Everyone that has signed into Outline appears here. It’s possible that there are other users who have access through {team.signinMethods} but haven’t signed in yet. Active Admins {can.update && ( Suspended )} Everyone {can.invite && ( Invited )} No people to see here.} fetch={this.fetchPage} renderItem={item => ( )} />
); } } export default inject('auth', 'users', 'policies')(People);