import type { TDocumentEmailSettings } from '@documenso/lib/types/document-email';
import { DocumentEmailEvents } from '@documenso/lib/types/document-email';
import { Tooltip, TooltipContent, TooltipTrigger } from '@documenso/ui/primitives/tooltip';
import { Trans } from '@lingui/react/macro';
import { InfoIcon } from 'lucide-react';
import { cn } from '../../lib/utils';
import { Checkbox } from '../../primitives/checkbox';
type Value = TDocumentEmailSettings;
type DocumentEmailCheckboxesProps = {
value: Value;
onChange: (value: Value) => void;
className?: string;
hiddenEvents?: readonly DocumentEmailEvents[];
};
export const DocumentEmailCheckboxes = ({ value, onChange, className, hiddenEvents }: DocumentEmailCheckboxesProps) => {
const isHidden = (event: DocumentEmailEvents) => hiddenEvents?.includes(event) ?? false;
return (
{!isHidden(DocumentEmailEvents.RecipientSigned) && (
onChange({ ...value, [DocumentEmailEvents.RecipientSigned]: Boolean(checked) })
}
/>
)}
{!isHidden(DocumentEmailEvents.RecipientSigningRequest) && (
onChange({ ...value, [DocumentEmailEvents.RecipientSigningRequest]: Boolean(checked) })
}
/>
)}
{!isHidden(DocumentEmailEvents.RecipientRemoved) && (
onChange({ ...value, [DocumentEmailEvents.RecipientRemoved]: Boolean(checked) })
}
/>
)}
{!isHidden(DocumentEmailEvents.DocumentPending) && (
onChange({ ...value, [DocumentEmailEvents.DocumentPending]: Boolean(checked) })
}
/>
)}
{!isHidden(DocumentEmailEvents.DocumentCompleted) && (
onChange({ ...value, [DocumentEmailEvents.DocumentCompleted]: Boolean(checked) })
}
/>
)}
{!isHidden(DocumentEmailEvents.DocumentDeleted) && (
onChange({ ...value, [DocumentEmailEvents.DocumentDeleted]: Boolean(checked) })
}
/>
)}
{!isHidden(DocumentEmailEvents.OwnerDocumentCompleted) && (
onChange({ ...value, [DocumentEmailEvents.OwnerDocumentCompleted]: Boolean(checked) })
}
/>
)}
{!isHidden(DocumentEmailEvents.OwnerDocumentCreated) && (
onChange({ ...value, [DocumentEmailEvents.OwnerDocumentCreated]: Boolean(checked) })
}
/>
)}
{!isHidden(DocumentEmailEvents.OwnerRecipientExpired) && (
onChange({ ...value, [DocumentEmailEvents.OwnerRecipientExpired]: Boolean(checked) })
}
/>
)}
);
};