import { Helmet } from "react-helmet"; import { useTranslation } from "react-i18next"; import { useNavigate, useSearch } from "@tanstack/react-router"; import { PageHeader, Tab, TabList, TabPanel, Tabs } from "@app/components/v2"; import { useProject } from "@app/context"; import { getProjectBaseURL } from "@app/helpers/project"; import { ProjectType } from "@app/hooks/api/projects/types"; import { ProjectAccessControlTabs } from "@app/types/project"; import { GroupsTab, IdentityTab, MembersTab, ProjectRoleListTab, ServiceTokenTab } from "./components"; const Page = () => { const navigate = useNavigate(); const { currentProject } = useProject(); const selectedTab = useSearch({ strict: false, select: (el) => el.selectedTab }); const updateSelectedTab = (tab: string) => { navigate({ to: `${getProjectBaseURL(currentProject.type)}/access-management` as const, search: (prev) => ({ ...prev, selectedTab: tab }), params: { projectId: currentProject.id } }); }; const isSecretManager = currentProject.type === ProjectType.SecretManager; return (
Users Groups

Machine Identities

{isSecretManager && ( Service Tokens )} Project Roles
{isSecretManager && ( )}
); }; export const AccessControlPage = () => { const { t } = useTranslation(); return ( <> {t("common.head-title", { title: t("settings.members.title") })} ); };