Skip to content

Commit

Permalink
Add flag to check for enterprise plan in invite member modal (supabas…
Browse files Browse the repository at this point in the history
…e#28006)

* Add flag to check for enterprise plan in invite member modal

* Small style fix

* Fix loading state for deleting member modal

* Fix

* Invite member modal to only show projects under the selected organization

* Fix
  • Loading branch information
joshenlim authored Jul 16, 2024
1 parent 8cabaec commit 3c53af4
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import { zodResolver } from '@hookform/resolvers/zod'
import { PermissionAction } from '@supabase/shared-types/out/constants'
import { isNil } from 'lodash'
import Link from 'next/link'
import { useEffect, useState } from 'react'
import { useForm } from 'react-hook-form'
import toast from 'react-hot-toast'
import * as z from 'zod'
import Link from 'next/link'

import { useParams } from 'common'
import InformationBox from 'components/ui/InformationBox'
import { useOrganizationCreateInvitationMutation } from 'data/organization-members/organization-invitation-create-mutation'
import { useOrganizationRolesV2Query } from 'data/organization-members/organization-roles-query'
import { useOrganizationMemberInviteCreateMutation } from 'data/organizations/organization-member-invite-create-mutation'
Expand All @@ -15,13 +17,12 @@ import { useProjectsQuery } from 'data/projects/projects-query'
import { useOrgSubscriptionQuery } from 'data/subscriptions/org-subscription-query'
import {
doPermissionsCheck,
useGetPermissions,
useCheckPermissions,
useGetPermissions,
} from 'hooks/misc/useCheckPermissions'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
import { useFlag } from 'hooks/ui/useFlag'
import { useProfile } from 'lib/profile'
import { isNil } from 'lodash'
import {
Button,
Dialog,
Expand Down Expand Up @@ -50,7 +51,6 @@ import {
Tooltip_Shadcn_,
} from 'ui'
import { useGetRolesManagementPermissions } from './TeamSettings.utils'
import InformationBox from 'components/ui/InformationBox'

export const InviteMemberButton = () => {
const { slug } = useParams()
Expand All @@ -67,6 +67,9 @@ export const InviteMemberButton = () => {
const orgScopedRoles = (allRoles?.org_scoped_roles ?? []).sort(
(a, b) => b.base_role_id - a.base_role_id
)
const orgProjects = (projects ?? []).filter(
(project) => project.organization_id === organization?.id
)
const canReadSubscriptions = useCheckPermissions(
PermissionAction.BILLING_READ,
'stripe.subscriptions'
Expand Down Expand Up @@ -195,7 +198,7 @@ export const InviteMemberButton = () => {

useEffect(() => {
if (!applyToOrg) {
const firstProject = projects?.[0]
const firstProject = orgProjects?.[0]
if (firstProject !== undefined) form.setValue('projectRef', firstProject.ref)
} else {
form.setValue('projectRef', '')
Expand Down Expand Up @@ -234,7 +237,7 @@ export const InviteMemberButton = () => {
onSubmit={form.handleSubmit(onInviteMember)}
>
<DialogSection className="flex flex-col gap-y-4 pb-2">
{projectLevelPermissionsEnabled && (
{projectLevelPermissionsEnabled && currentPlan?.id === 'enterprise' && (
<FormField_Shadcn_
name="applyToOrg"
control={form.control}
Expand Down Expand Up @@ -306,13 +309,13 @@ export const InviteMemberButton = () => {
value={field.value}
onValueChange={(value) => form.setValue('projectRef', value)}
>
<SelectTrigger_Shadcn_ className="text-sm h-10 capitalize">
{(projects ?? []).find((project) => project.ref === field.value)
?.name ?? 'Unknown'}
<SelectTrigger_Shadcn_ className="text-sm h-10 capitalize text-left truncate max-w-[470px]">
{orgProjects.find((project) => project.ref === field.value)?.name ??
'Unknown'}
</SelectTrigger_Shadcn_>
<SelectContent_Shadcn_>
<SelectGroup_Shadcn_>
{(projects ?? []).map((project) => {
{orgProjects.map((project) => {
return (
<SelectItem_Shadcn_
key={project.id}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,7 @@ export const MemberActions = ({ member }: MemberActionsProps) => {

const { mutate: deleteInvitation, isLoading: isDeletingInvite } =
useOrganizationDeleteInvitationMutation()
const { mutate: deleteInvitationOld, isLoading: isDeletingInviteOld } =
useOrganizationMemberInviteDeleteMutation()
const { mutate: deleteInvitationOld } = useOrganizationMemberInviteDeleteMutation()

const isLoading = isDeletingMember || isDeletingInvite || isCreatingInvite

Expand Down Expand Up @@ -283,6 +282,7 @@ export const MemberActions = ({ member }: MemberActionsProps) => {

<ConfirmationModal
visible={isDeleteModalOpen}
loading={isDeletingMember}
title="Confirm to remove"
confirmLabel="Remove"
onCancel={() => setIsDeleteModalOpen(false)}
Expand Down

0 comments on commit 3c53af4

Please sign in to comment.