1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-25 08:19:40 +02:00
portainer/app/react/portainer/users/teams/ItemView/ItemView.tsx

72 lines
1.9 KiB
TypeScript

import { useRouter } from '@uirouter/react';
import { useUsers } from '@/portainer/users/queries';
import { useUser } from '@/react/hooks/useUser';
import { usePublicSettings } from '@/react/portainer/settings/queries';
import { TextTip } from '@@/Tip/TextTip';
import { PageHeader } from '@@/PageHeader';
import { useTeam, useTeamMemberships } from '../queries';
import { Details } from './Details';
import { TeamAssociationSelector } from './TeamAssociationSelector';
import { useTeamIdParam } from './useTeamIdParam';
export function ItemView() {
const teamId = useTeamIdParam();
const { isAdmin } = useUser();
const router = useRouter();
const teamQuery = useTeam(teamId, () =>
router.stateService.go('portainer.teams')
);
const usersQuery = useUsers();
const membershipsQuery = useTeamMemberships(teamId);
const teamSyncQuery = usePublicSettings<boolean>({
select: (settings) => settings.TeamSync,
});
if (!teamQuery.data) {
return null;
}
const team = teamQuery.data;
return (
<>
<PageHeader
title="Team details"
breadcrumbs={[{ label: 'Teams' }, { label: team.Name }]}
/>
{membershipsQuery.data && (
<Details
team={team}
memberships={membershipsQuery.data}
isAdmin={isAdmin}
/>
)}
{teamSyncQuery.data && (
<div className="row">
<div className="col-sm-12">
<TextTip color="orange">
The team leader feature is disabled as external authentication is
currently enabled with team sync.
</TextTip>
</div>
</div>
)}
{usersQuery.data && membershipsQuery.data && (
<TeamAssociationSelector
teamId={teamId}
memberships={membershipsQuery.data}
users={usersQuery.data}
disabled={teamSyncQuery.data}
/>
)}
</>
);
}