import { RoleImpersonationSelector } from '.'
import { ChevronDown, User as IconUser } from 'lucide-react'
import { useState } from 'react'
import { Button, cn, Popover, PopoverContent, PopoverTrigger } from 'ui'
import { getAvatarUrl, getDisplayName } from '../Auth/Users/Users.utils'
import type { User } from '@/data/auth/users-infinite-query'
import { useRoleImpersonationStateSnapshot } from '@/state/role-impersonation-state'
export interface RoleImpersonationPopoverProps {
header?: string
serviceRoleLabel?: string
variant?: 'regular' | 'connected-on-right' | 'connected-on-left' | 'connected-on-both'
align?: 'center' | 'start' | 'end'
disallowAuthenticatedOption?: boolean
}
export const RoleImpersonationPopover = ({
header,
serviceRoleLabel,
variant = 'regular',
align = 'end',
disallowAuthenticatedOption = false,
}: RoleImpersonationPopoverProps) => {
const state = useRoleImpersonationStateSnapshot()
const [isOpen, setIsOpen] = useState(false)
const currentRole = state.role?.role ?? serviceRoleLabel ?? 'postgres'
return (