Files
documenso/packages/ui/components/document/next-inbox-item-button.tsx
Ephraim Atta-Duncan eb96f315b6 feat: power signing mode
2024-10-10 20:23:32 +00:00

78 lines
2.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'use client';
import type { HTMLAttributes } from 'react';
import Link from 'next/link';
import { Trans } from '@lingui/macro';
import { DateTime } from 'luxon';
import type { DocumentData, Prisma } from '@documenso/prisma/client';
import { SignatureIcon } from '@documenso/ui/icons/signature';
import { Button } from '@documenso/ui/primitives/button';
import { Tooltip, TooltipContent, TooltipTrigger } from '@documenso/ui/primitives/tooltip';
type GetNextInboxDocumentResult = Prisma.DocumentGetPayload<{
select: {
createdAt: true;
title: true;
Recipient: {
select: {
token: true;
};
};
documentMeta: true;
};
}> | null;
export type NextInboxItemButtonProps = HTMLAttributes<HTMLButtonElement> & {
disabled?: boolean;
documentData?: DocumentData;
userEmail: string | undefined;
nextInboxDocument: GetNextInboxDocumentResult;
};
export const NextInboxItemButton = ({
className,
documentData,
nextInboxDocument,
userEmail,
disabled,
...props
}: NextInboxItemButtonProps) => {
const recipientToken = nextInboxDocument?.Recipient[0]?.token ?? null;
return (
<Tooltip>
<TooltipTrigger>
<Link href={'/sign/' + recipientToken}>
<Button
type="button"
variant="outline"
className={className}
disabled={disabled || !documentData || !userEmail}
{...props}
>
<SignatureIcon className="mr-2 h-5 w-5" />
<Trans>Sign Next Document</Trans>
</Button>
</Link>
</TooltipTrigger>
<TooltipContent className="flex flex-row items-start gap-x-2 p-4">
<div className="gap-y-2">
<p className="text-foreground text-base font-semibold">{nextInboxDocument?.title}</p>
{nextInboxDocument?.createdAt && (
<p className="text-muted-foreground text-sm">
<Trans>
Created {DateTime.fromJSDate(nextInboxDocument?.createdAt).toFormat('LLL yy')}
</Trans>
</p>
)}
</div>
</TooltipContent>
</Tooltip>
);
};