// @flow import { observer } from "mobx-react"; import { PlusIcon, GroupIcon } from "outline-icons"; import * as React from "react"; import { useTranslation, Trans } from "react-i18next"; import GroupNew from "scenes/GroupNew"; import Button from "components/Button"; import Empty from "components/Empty"; import GroupListItem from "components/GroupListItem"; import Heading from "components/Heading"; import HelpText from "components/HelpText"; import Modal from "components/Modal"; import PaginatedList from "components/PaginatedList"; import Scene from "components/Scene"; import Subheading from "components/Subheading"; import useCurrentTeam from "hooks/useCurrentTeam"; import useStores from "hooks/useStores"; import GroupMenu from "menus/GroupMenu"; function Groups() { const { t } = useTranslation(); const { policies, groups } = useStores(); const team = useCurrentTeam(); const can = policies.abilities(team.id); const [newGroupModalOpen, setNewGroupModalOpen] = React.useState(false); const handleNewGroupModalOpen = React.useCallback(() => { setNewGroupModalOpen(true); }, []); const handleNewGroupModalClose = React.useCallback(() => { setNewGroupModalOpen(false); }, []); return ( }> {t("Groups")} Groups can be used to organize and manage the people on your team. {can.createGroup && ( )} {t("All groups")} {t("No groups have been created yet")}} fetch={groups.fetchPage} renderItem={(item) => ( ( )} showFacepile /> )} /> ); } export default observer(Groups);