|
| 1 | +import PersonAdd from "@mui/icons-material/PersonAdd"; |
| 2 | +import Button from "@mui/material/Button"; |
1 | 3 | import type { ComponentProps, FC } from "react";
|
| 4 | +import { useNavigate } from "react-router-dom"; |
2 | 5 | import type { GroupsByUserId } from "api/queries/groups";
|
3 | 6 | import type * as TypesGen from "api/typesGenerated";
|
| 7 | +import { PageHeader, PageHeaderTitle } from "components/PageHeader/PageHeader"; |
4 | 8 | import {
|
5 | 9 | PaginationContainer,
|
6 | 10 | type PaginationResult,
|
7 | 11 | } from "components/PaginationWidget/PaginationContainer";
|
| 12 | +import { useAuthenticated } from "contexts/auth/RequireAuth"; |
| 13 | +import { useDashboard } from "modules/dashboard/useDashboard"; |
8 | 14 | import { UsersFilter } from "./UsersFilter";
|
9 | 15 | import { UsersTable } from "./UsersTable/UsersTable";
|
10 | 16 |
|
@@ -56,8 +62,35 @@ export const UsersPageView: FC<UsersPageViewProps> = ({
|
56 | 62 | groupsByUserId,
|
57 | 63 | usersQuery,
|
58 | 64 | }) => {
|
| 65 | + const { experiments } = useDashboard(); |
| 66 | + const { permissions } = useAuthenticated(); |
| 67 | + const navigate = useNavigate(); |
| 68 | + const { createUser: canCreateUser } = permissions; |
| 69 | + |
| 70 | + const isMultiOrg = experiments.includes("multi-organization"); |
| 71 | + |
59 | 72 | return (
|
60 | 73 | <>
|
| 74 | + {isMultiOrg && ( |
| 75 | + <PageHeader |
| 76 | + css={{ paddingTop: 0 }} |
| 77 | + actions={ |
| 78 | + <> |
| 79 | + {canCreateUser && ( |
| 80 | + <Button |
| 81 | + onClick={() => navigate("/users/create")} |
| 82 | + startIcon={<PersonAdd />} |
| 83 | + > |
| 84 | + Create user |
| 85 | + </Button> |
| 86 | + )} |
| 87 | + </> |
| 88 | + } |
| 89 | + > |
| 90 | + <PageHeaderTitle>Users</PageHeaderTitle> |
| 91 | + </PageHeader> |
| 92 | + )} |
| 93 | + |
61 | 94 | <UsersFilter {...filterProps} />
|
62 | 95 |
|
63 | 96 | <PaginationContainer query={usersQuery} paginationUnitLabel="users">
|
|
0 commit comments