'use client'; import { Plural, Trans } from '@lingui/macro'; import { AnimatePresence } from 'framer-motion'; import { BellIcon } from 'lucide-react'; import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; import { formatTeamUrl } from '@documenso/lib/utils/teams'; import { trpc } from '@documenso/trpc/react'; import { AnimateGenericFadeInOut } from '@documenso/ui/components/animate/animate-generic-fade-in-out'; import { Alert, AlertDescription } from '@documenso/ui/primitives/alert'; import { AvatarWithText } from '@documenso/ui/primitives/avatar'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from '@documenso/ui/primitives/dialog'; import { AcceptTeamInvitationButton } from './accept-team-invitation-button'; import { DeclineTeamInvitationButton } from './decline-team-invitation-button'; export const TeamInvitations = () => { const { data, isLoading } = trpc.team.getTeamInvitations.useQuery(); return ( {data && data.length > 0 && !isLoading && (
You have 1 pending team invitation } other={ You have # pending team invitations } /> Pending invitations You have 1 pending team invitation } other={ You have # pending team invitations } />
    {data.map((invitation) => (
  • {invitation.team.name} } secondaryText={formatTeamUrl(invitation.team.url)} rightSideComponent={
    } />
  • ))}
)}
); };