Files
sign/packages/ui/primitives/document-flow/signer-action-dropdown.tsx

67 lines
1.8 KiB
TypeScript
Raw Normal View History

2024-11-17 09:46:41 +00:00
'use client';
import { useState } from 'react';
import { MoreHorizontal, Timer, Trash } from 'lucide-react';
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuTrigger,
} from '@documenso/ui/primitives/dropdown-menu';
import { cn } from '../../lib/utils';
2024-11-17 11:02:52 +00:00
import type { TAddSignerSchema as Signer } from './add-signers.types';
2024-11-17 16:29:47 +00:00
import { DocumentExpiryDialog } from './document-expiry-dialog';
2024-11-17 09:46:41 +00:00
type SignerActionDropdownProps = {
onDelete: () => void;
deleteDisabled?: boolean;
className?: string;
2024-11-17 11:02:52 +00:00
signer: Signer;
documentId: number;
2024-11-17 09:46:41 +00:00
};
2024-11-17 11:02:52 +00:00
export function SignerActionDropdown({
deleteDisabled,
className,
signer,
documentId,
2024-11-17 16:29:47 +00:00
onDelete,
2024-11-17 11:02:52 +00:00
}: SignerActionDropdownProps) {
2024-11-17 09:46:41 +00:00
const [isExpiryDialogOpen, setExpiryDialogOpen] = useState(false);
return (
<>
<div className={cn('flex items-center justify-center', className)}>
<DropdownMenu>
<DropdownMenuTrigger>
<MoreHorizontal className="text-muted-foreground h-5 w-5" />
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuGroup>
<DropdownMenuItem className="gap-x-2" onClick={() => setExpiryDialogOpen(true)}>
<Timer className="h-4 w-4" />
Expiry
</DropdownMenuItem>
2024-11-17 16:29:47 +00:00
<DropdownMenuItem disabled={deleteDisabled} className="gap-x-2" onClick={onDelete}>
2024-11-17 09:46:41 +00:00
<Trash className="h-4 w-4" />
Delete
</DropdownMenuItem>
</DropdownMenuGroup>
</DropdownMenuContent>
</DropdownMenu>
</div>
2024-11-17 12:12:27 +00:00
2024-11-17 11:02:52 +00:00
<DocumentExpiryDialog
open={isExpiryDialogOpen}
onOpenChange={setExpiryDialogOpen}
signer={signer}
documentId={documentId}
/>
2024-11-17 09:46:41 +00:00
</>
);
}