import * as Tooltip from '@radix-ui/react-tooltip' import { PermissionAction } from '@supabase/shared-types/out/constants' import { useState } from 'react' import semver from 'semver' import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, IconChevronDown, IconMail, IconUserPlus, } from 'ui' import { useCheckPermissions } from 'hooks' import { IS_PLATFORM } from 'lib/constants' import InviteUserModal from './InviteUserModal' import CreateUserModal from './CreateUserModal' export type AddUserDropdownProps = { projectKpsVersion?: string } const AddUserDropdown = ({ projectKpsVersion }: AddUserDropdownProps) => { const inviteEnabled = IS_PLATFORM ? semver.gte( // @ts-ignore semver.coerce(projectKpsVersion ?? 'kps-v2.5.4'), semver.coerce('kps-v2.5.3') ) : true const canInviteUsers = useCheckPermissions(PermissionAction.AUTH_EXECUTE, 'invite_user') const canCreateUsers = useCheckPermissions(PermissionAction.AUTH_EXECUTE, 'create_user') const [inviteVisible, setInviteVisible] = useState(false) const [createVisible, setCreateVisible] = useState(false) return ( <> {inviteEnabled && ( setInviteVisible(true)} >

Send invitation

{!canInviteUsers && (
You need additional permissions to invite users
)}
)} setCreateVisible(true)} >

Create new user

{!canCreateUsers && (
You need additional permissions to create users
)}
{inviteEnabled && } ) } export default AddUserDropdown