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 ( <> }> Add user {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
Send invitation
Create new user