import { CheckCircle2, Clock } from 'lucide-react'; import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; import { getTeamByUrl } from '@documenso/lib/server-only/team/get-teams'; import { extractInitials } from '@documenso/lib/utils/recipient-formatter'; import { isTokenExpired } from '@documenso/lib/utils/token-verification'; import { AvatarWithText } from '@documenso/ui/primitives/avatar'; import SettingsHeader from '~/components/(dashboard)/settings/layout/header'; import AddTeamEmailDialog from '~/components/(teams)/dialogs/add-team-email-dialog'; import DeleteTeamDialog from '~/components/(teams)/dialogs/delete-team-dialog'; import TransferTeamDialog from '~/components/(teams)/dialogs/transfer-team-dialog'; import UpdateTeamForm from '~/components/(teams)/forms/update-team-form'; import TeamEmailDropdown from './team-email-dropdown'; import { TeamTransferStatus } from './team-transfer-status'; export type TeamsSettingsPageProps = { params: { teamUrl: string; }; }; export default async function TeamsSettingsPage({ params }: TeamsSettingsPageProps) { const { teamUrl } = params; const session = await getRequiredServerComponentSession(); const team = await getTeamByUrl({ userId: session.user.id, teamUrl }); const isTransferVerificationExpired = !team.transferVerification || isTokenExpired(team.transferVerification.expiresAt); return (
{(team.teamEmail || team.emailVerification) && (

Team email

You can view documents associated with this email and use this identity when sending documents.


{team.teamEmail?.name || team.emailVerification?.name} } secondaryText={ {team.teamEmail?.email || team.emailVerification?.email} } />
{team.teamEmail ? ( <> Active ) : team.emailVerification && team.emailVerification.expiresAt < new Date() ? ( <> Expired ) : ( team.emailVerification && ( <> Awaiting email confirmation ) )}
)} {!team.teamEmail && !team.emailVerification && (

Team email

  • Display this name and email when sending documents
  • View documents associated with this email
)} {team.ownerUserId === session.user.id && ( <> {isTransferVerificationExpired && (

Transfer team

Transfer the ownership of the team to another team member.

)}

Delete team

This team, and any associated data excluding billing invoices will be permanently deleted.

)}
); }