Improve InviteUsers interface (#63383)

Based on @taras-yemets's
[feedback](https://github.com/sourcegraph/sourcegraph/pull/63375#discussion_r1647346730)
on https://github.com/sourcegraph/sourcegraph/pull/63375

## Test plan

Just a refactor
This commit is contained in:
David Veszelovszki 2024-06-20 12:42:53 +02:00 committed by GitHub
parent 03179a757e
commit 2a02d7c88b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 22 additions and 8 deletions

View File

@ -8,17 +8,21 @@ import { CodyAlert } from '../components/CodyAlert'
import { CodyContainer } from '../components/CodyContainer'
import { CodyProBadgeDeck } from '../components/CodyProBadgeDeck'
import { useSendInvite, useTeamInvites } from '../management/api/react-query/invites'
import { useCurrentSubscription, useSubscriptionSummary } from '../management/api/react-query/subscriptions'
import { useCurrentSubscription } from '../management/api/react-query/subscriptions'
import { useTeamMembers } from '../management/api/react-query/teams'
import type { SubscriptionSummary } from '../management/api/teamSubscriptions'
import { isValidEmailAddress } from '../util'
import styles from './InviteUsers.module.scss'
export const InviteUsers: React.FunctionComponent<TelemetryV2Props> = ({ telemetryRecorder }) => {
interface InviteUsersProps extends TelemetryV2Props {
subscriptionSummary: SubscriptionSummary
}
export const InviteUsers: React.FunctionComponent<InviteUsersProps> = ({ telemetryRecorder, subscriptionSummary }) => {
const subscriptionQueryResult = useCurrentSubscription()
const subscriptionSummaryQueryResult = useSubscriptionSummary()
const isAdmin = subscriptionSummaryQueryResult?.data?.userRole === 'admin'
const teamId = subscriptionSummaryQueryResult?.data?.teamId
const isAdmin = subscriptionSummary.userRole === 'admin'
const teamId = subscriptionSummary.teamId
const teamMembersQueryResult = useTeamMembers()
const teamMembers = teamMembersQueryResult.data?.members
const teamInvitesQueryResult = useTeamInvites()
@ -100,7 +104,7 @@ export const InviteUsers: React.FunctionComponent<TelemetryV2Props> = ({ telemet
})
}, [emailAddresses, sendInviteMutation.mutateAsync, teamId, telemetryRecorder, verifyEmailList])
if (!isAdmin || !remainingInviteCount || !subscriptionSummaryQueryResult?.data) {
if (!isAdmin || !remainingInviteCount) {
return null
}

View File

@ -151,7 +151,12 @@ export const CodyManagementPage: React.FunctionComponent<CodyManagementPageProps
</PageHeader.Heading>
</PageHeader>
{isAdmin && <InviteUsers telemetryRecorder={telemetryRecorder} />}
{isAdmin && !!subscriptionSummaryQueryResult.data && (
<InviteUsers
telemetryRecorder={telemetryRecorder}
subscriptionSummary={subscriptionSummaryQueryResult.data}
/>
)}
{!isUserOnProTier && <UpgradeToProBanner onClick={onClickUpgradeToProCTA} />}

View File

@ -120,7 +120,12 @@ const AuthenticatedCodyManageTeamPage: React.FunctionComponent<CodyManageTeamPag
</CodyAlert>
)}
{isAdmin && <InviteUsers telemetryRecorder={telemetryRecorder} />}
{isAdmin && !!subscriptionSummaryQueryResult.data && (
<InviteUsers
telemetryRecorder={telemetryRecorder}
subscriptionSummary={subscriptionSummaryQueryResult.data}
/>
)}
{!!subscriptionSummaryQueryResult.data && (
<TeamMemberList
teamId={subscriptionSummaryQueryResult.data.teamId}