From 2c320e8b92c7bcc1323035aa2c315d98f20c7cb5 Mon Sep 17 00:00:00 2001 From: Ephraim Duncan <55143799+ephraimduncan@users.noreply.github.com> Date: Fri, 5 Jul 2024 03:05:22 +0000 Subject: [PATCH] fix: use team avatar everywhere (#1220) Expands team avatar support across various components and pages of the application. --- .../app/(dashboard)/documents/documents-page-view.tsx | 6 +++++- .../(dashboard)/settings/teams/team-invitations.tsx | 4 ++++ .../app/(dashboard)/templates/templates-page-view.tsx | 6 +++++- .../web/src/app/(teams)/t/[teamUrl]/settings/page.tsx | 2 ++ .../components/(teams)/dialogs/leave-team-dialog.tsx | 11 ++++++++++- .../(teams)/tables/current-user-teams-data-table.tsx | 4 +++- packages/lib/server-only/team/get-team-invitations.ts | 1 + 7 files changed, 30 insertions(+), 4 deletions(-) diff --git a/apps/web/src/app/(dashboard)/documents/documents-page-view.tsx b/apps/web/src/app/(dashboard)/documents/documents-page-view.tsx index 84f6bfe3f..3420fc0be 100644 --- a/apps/web/src/app/(dashboard)/documents/documents-page-view.tsx +++ b/apps/web/src/app/(dashboard)/documents/documents-page-view.tsx @@ -1,5 +1,6 @@ import Link from 'next/link'; +import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; import { findDocuments } from '@documenso/lib/server-only/document/find-documents'; import type { PeriodSelectorValue } from '@documenso/lib/server-only/document/find-documents'; @@ -10,7 +11,7 @@ import { formatDocumentsPath } from '@documenso/lib/utils/teams'; import type { Team, TeamEmail } from '@documenso/prisma/client'; import { isExtendedDocumentStatus } from '@documenso/prisma/guards/is-extended-document-status'; import { ExtendedDocumentStatus } from '@documenso/prisma/types/extended-document-status'; -import { Avatar, AvatarFallback } from '@documenso/ui/primitives/avatar'; +import { Avatar, AvatarFallback, AvatarImage } from '@documenso/ui/primitives/avatar'; import { Tabs, TabsList, TabsTrigger } from '@documenso/ui/primitives/tabs'; import { PeriodSelector } from '~/components/(dashboard)/period-selector/period-selector'; @@ -94,6 +95,9 @@ export const DocumentsPageView = async ({ searchParams = {}, team }: DocumentsPa
{team && ( + {team.avatarImageId && ( + + )} {team.name.slice(0, 1)} diff --git a/apps/web/src/app/(dashboard)/settings/teams/team-invitations.tsx b/apps/web/src/app/(dashboard)/settings/teams/team-invitations.tsx index aa1be3f3f..b3ff9233b 100644 --- a/apps/web/src/app/(dashboard)/settings/teams/team-invitations.tsx +++ b/apps/web/src/app/(dashboard)/settings/teams/team-invitations.tsx @@ -3,6 +3,7 @@ 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'; @@ -55,6 +56,9 @@ export const TeamInvitations = () => { {data.map((invitation) => (
  • {team && ( + {team.avatarImageId && ( + + )} {team.name.slice(0, 1)} diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx index 88782b1e7..ca897a30e 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/settings/page.tsx @@ -1,6 +1,7 @@ import { CheckCircle2, Clock } from 'lucide-react'; import { P, match } from 'ts-pattern'; +import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; import { getTeamByUrl } from '@documenso/lib/server-only/team/get-team'; import { extractInitials } from '@documenso/lib/utils/recipient-formatter'; @@ -64,6 +65,7 @@ export default async function TeamsSettingsPage({ params }: TeamsSettingsPagePro
    { +export const LeaveTeamDialog = ({ + trigger, + teamId, + teamName, + teamAvatarImageId, + role, +}: LeaveTeamDialogProps) => { const [open, setOpen] = useState(false); const { toast } = useToast(); @@ -70,6 +78,7 @@ export const LeaveTeamDialog = ({ trigger, teamId, teamName, role }: LeaveTeamDi { cell: ({ row }) => ( {