feat: wip

This commit is contained in:
David Nguyen
2023-12-27 17:44:36 +11:00
parent 917a1271bf
commit d546907c53
8 changed files with 14 additions and 16 deletions

View File

@ -7,9 +7,9 @@ import Link from 'next/link';
import { Loader } from 'lucide-react'; import { Loader } from 'lucide-react';
import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params'; import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params';
import { FindResultSet } from '@documenso/lib/types/find-result-set'; import type { FindResultSet } from '@documenso/lib/types/find-result-set';
import { recipientInitials } from '@documenso/lib/utils/recipient-formatter'; import { extractInitials } from '@documenso/lib/utils/recipient-formatter';
import { Document, User } from '@documenso/prisma/client'; import type { Document, User } from '@documenso/prisma/client';
import { Avatar, AvatarFallback } from '@documenso/ui/primitives/avatar'; import { Avatar, AvatarFallback } from '@documenso/ui/primitives/avatar';
import { DataTable } from '@documenso/ui/primitives/data-table'; import { DataTable } from '@documenso/ui/primitives/data-table';
import { DataTablePagination } from '@documenso/ui/primitives/data-table-pagination'; import { DataTablePagination } from '@documenso/ui/primitives/data-table-pagination';
@ -65,7 +65,7 @@ export const DocumentsDataTable = ({ results }: DocumentsDataTableProps) => {
accessorKey: 'owner', accessorKey: 'owner',
cell: ({ row }) => { cell: ({ row }) => {
const avatarFallbackText = row.original.User.name const avatarFallbackText = row.original.User.name
? recipientInitials(row.original.User.name) ? extractInitials(row.original.User.name)
: row.original.User.email.slice(0, 1).toUpperCase(); : row.original.User.email.slice(0, 1).toUpperCase();
return ( return (

View File

@ -2,7 +2,7 @@ import { CheckCircle2, Clock } from 'lucide-react';
import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session'; import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session';
import { getTeamByUrl } from '@documenso/lib/server-only/team/get-teams'; import { getTeamByUrl } from '@documenso/lib/server-only/team/get-teams';
import { recipientInitials } from '@documenso/lib/utils/recipient-formatter'; import { extractInitials } from '@documenso/lib/utils/recipient-formatter';
import { isTokenExpired } from '@documenso/lib/utils/token-verification'; import { isTokenExpired } from '@documenso/lib/utils/token-verification';
import { AvatarWithText } from '@documenso/ui/primitives/avatar'; import { AvatarWithText } from '@documenso/ui/primitives/avatar';
@ -58,7 +58,7 @@ export default async function TeamsSettingsPage({ params }: TeamsSettingsPagePro
<div className="flex flex-row items-center justify-between py-4"> <div className="flex flex-row items-center justify-between py-4">
<AvatarWithText <AvatarWithText
avatarClass="h-12 w-12" avatarClass="h-12 w-12"
avatarFallback={recipientInitials( avatarFallback={extractInitials(
(team.teamEmail?.name || team.emailVerification?.name) ?? '', (team.teamEmail?.name || team.emailVerification?.name) ?? '',
)} )}
primaryText={ primaryText={

View File

@ -9,7 +9,7 @@ import { signOut } from 'next-auth/react';
import { TEAM_MEMBER_ROLE_MAP, canExecuteTeamAction } from '@documenso/lib/constants/teams'; import { TEAM_MEMBER_ROLE_MAP, canExecuteTeamAction } from '@documenso/lib/constants/teams';
import { isAdmin } from '@documenso/lib/next-auth/guards/is-admin'; import { isAdmin } from '@documenso/lib/next-auth/guards/is-admin';
import type { GetTeamsResponse } from '@documenso/lib/server-only/team/get-teams'; import type { GetTeamsResponse } from '@documenso/lib/server-only/team/get-teams';
import { recipientInitials } from '@documenso/lib/utils/recipient-formatter'; import { extractInitials } from '@documenso/lib/utils/recipient-formatter';
import type { User } from '@documenso/prisma/client'; import type { User } from '@documenso/prisma/client';
import { trpc } from '@documenso/trpc/react'; import { trpc } from '@documenso/trpc/react';
import { cn } from '@documenso/ui/lib/utils'; import { cn } from '@documenso/ui/lib/utils';
@ -55,7 +55,7 @@ export const ProfileDropdown = ({ user, teams: initialTeamsData }: ProfileDropdo
return teamName.slice(0, 1).toUpperCase(); return teamName.slice(0, 1).toUpperCase();
} }
return user.name ? recipientInitials(user.name) : user.email.slice(0, 1).toUpperCase(); return user.name ? extractInitials(user.name) : user.email.slice(0, 1).toUpperCase();
}; };
const formatSecondaryAvatarText = (team?: typeof selectedTeam) => { const formatSecondaryAvatarText = (team?: typeof selectedTeam) => {

View File

@ -45,7 +45,6 @@ export const ZInviteTeamMembersFormSchema = z
.object({ .object({
invitations: ZCreateTeamMemberInvitesMutationSchema.shape.invitations, invitations: ZCreateTeamMemberInvitesMutationSchema.shape.invitations,
}) })
// Todo: Teams
.refine( .refine(
(schema) => { (schema) => {
const emails = schema.invitations.map((invitation) => invitation.email.toLowerCase()); const emails = schema.invitations.map((invitation) => invitation.email.toLowerCase());

View File

@ -7,7 +7,7 @@ import { Edit, MoreHorizontal, Trash2 } from 'lucide-react';
import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params'; import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params';
import { TEAM_MEMBER_ROLE_MAP } from '@documenso/lib/constants/teams'; import { TEAM_MEMBER_ROLE_MAP } from '@documenso/lib/constants/teams';
import { ZBaseTableSearchParamsSchema } from '@documenso/lib/types/search-params'; import { ZBaseTableSearchParamsSchema } from '@documenso/lib/types/search-params';
import { recipientInitials } from '@documenso/lib/utils/recipient-formatter'; import { extractInitials } from '@documenso/lib/utils/recipient-formatter';
import { trpc } from '@documenso/trpc/react'; import { trpc } from '@documenso/trpc/react';
import { AvatarWithText } from '@documenso/ui/primitives/avatar'; import { AvatarWithText } from '@documenso/ui/primitives/avatar';
import { DataTable } from '@documenso/ui/primitives/data-table'; import { DataTable } from '@documenso/ui/primitives/data-table';
@ -78,7 +78,7 @@ export default function TeamMembersDataTable({
header: 'Team Member', header: 'Team Member',
cell: ({ row }) => { cell: ({ row }) => {
const avatarFallbackText = row.original.user.name const avatarFallbackText = row.original.user.name
? recipientInitials(row.original.user.name) // Todo: Teams - Extract to `nameInitials` ? extractInitials(row.original.user.name)
: row.original.user.email.slice(0, 1).toUpperCase(); : row.original.user.email.slice(0, 1).toUpperCase();
return ( return (

View File

@ -304,7 +304,6 @@ const findTeamDocumentsFilter = (
}) })
.with(ExtendedDocumentStatus.INBOX, () => { .with(ExtendedDocumentStatus.INBOX, () => {
// Return a filter that will return nothing. // Return a filter that will return nothing.
// Todo: Teams - Should be a better way to do this.
if (!teamEmail) { if (!teamEmail) {
return null; return null;
} }

View File

@ -194,7 +194,7 @@ export const createTeamFromPendingTeam = async ({
.catch((e) => { .catch((e) => {
console.error(e); console.error(e);
// Non-critical error, but we want to log it so we can rectify it. // Non-critical error, but we want to log it so we can rectify it.
// Todo: Teams - Send alert. // Todo: Teams - Alert us.
}); });
}); });
}; };

View File

@ -1,6 +1,6 @@
import { Recipient } from '@documenso/prisma/client'; import type { Recipient } from '@documenso/prisma/client';
export const recipientInitials = (text: string) => export const extractInitials = (text: string) =>
text text
.split(' ') .split(' ')
.map((name: string) => name.slice(0, 1).toUpperCase()) .map((name: string) => name.slice(0, 1).toUpperCase())
@ -8,5 +8,5 @@ export const recipientInitials = (text: string) =>
.join(''); .join('');
export const recipientAbbreviation = (recipient: Recipient) => { export const recipientAbbreviation = (recipient: Recipient) => {
return recipientInitials(recipient.name) || recipient.email.slice(0, 1).toUpperCase(); return extractInitials(recipient.name) || recipient.email.slice(0, 1).toUpperCase();
}; };