// Copyright 2025 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import React, { useState } from 'react'; import type { LocalizerType } from '../types/Util.js'; import type { BadgeType } from '../badges/types.js'; import { Modal } from './Modal.js'; import { Button, ButtonVariant } from './Button.js'; import { Checkbox } from './Checkbox.js'; import { BadgeImage } from './BadgeImage.js'; import { Spinner } from './Spinner.js'; export type PropsType = { i18n: LocalizerType; onClose: (error?: Error) => void; badge: BadgeType | undefined; applyDonationBadge: (args: { badge: BadgeType | undefined; applyBadge: boolean; onComplete: (error?: Error) => void; }) => void; }; export function DonationThanksModal({ i18n, onClose, badge, applyDonationBadge, }: PropsType): JSX.Element { const [applyBadgeIsChecked, setApplyBadgeIsChecked] = useState(true); const [isUpdating, setIsUpdating] = useState(false); const handleToggleBadge = (enabled: boolean) => { setApplyBadgeIsChecked(enabled); }; const handleDone = () => { if (isUpdating) { return; } setIsUpdating(true); applyDonationBadge({ badge, applyBadge: applyBadgeIsChecked, onComplete: (error?: Error) => { setIsUpdating(false); onClose(error); }, }); }; return ( {i18n('icu:done')} } >
{badge ? ( ) : ( )}

{i18n('icu:Donations__badge-modal--title')}

{i18n('icu:Donations__badge-modal--description')}

{i18n('icu:Donations__badge-modal--display-on-profile')}
{i18n('icu:Donations__badge-modal--help-text')}
); }