import type { TLicenseClaim } from '@documenso/lib/types/license'; import { trpc } from '@documenso/trpc/react'; import type { TFindSubscriptionClaimsResponse } from '@documenso/trpc/server/admin-router/find-subscription-claims.types'; import { Button } from '@documenso/ui/primitives/button'; import { Checkbox } from '@documenso/ui/primitives/checkbox'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@documenso/ui/primitives/dialog'; import { useToast } from '@documenso/ui/primitives/use-toast'; import { Trans, useLingui } from '@lingui/react/macro'; import { useState } from 'react'; import { SubscriptionClaimForm } from '../forms/subscription-claim-form'; export type ClaimUpdateDialogProps = { claim: TFindSubscriptionClaimsResponse['data'][number]; trigger: React.ReactNode; licenseFlags?: TLicenseClaim; }; export const ClaimUpdateDialog = ({ claim, trigger, licenseFlags }: ClaimUpdateDialogProps) => { const { t } = useLingui(); const { toast } = useToast(); const [open, setOpen] = useState(false); const [backportEmailTransport, setBackportEmailTransport] = useState(false); const { mutateAsync: updateClaim, isPending } = trpc.admin.claims.update.useMutation({ onSuccess: () => { toast({ title: t`Subscription claim updated successfully.`, }); setOpen(false); }, onError: () => { toast({ title: t`Failed to update subscription claim.`, variant: 'destructive', }); }, }); return ( e.stopPropagation()}> {trigger} Update Subscription Claim Modify the details of the subscription claim. await updateClaim({ id: claim.id, data, backportEmailTransport, }) } licenseFlags={licenseFlags} formSubmitTrigger={ <>
setBackportEmailTransport(checked === true)} />
} />
); };