Spaces:
Build error
Build error
| import { useTranslation } from "react-i18next"; | |
| import { | |
| BaseModalTitle, | |
| BaseModalDescription, | |
| } from "#/components/shared/modals/confirmation-modals/base-modal"; | |
| import { ModalBackdrop } from "#/components/shared/modals/modal-backdrop"; | |
| import { ModalBody } from "#/components/shared/modals/modal-body"; | |
| import { useSaveSettings } from "#/hooks/mutation/use-save-settings"; | |
| import { handleCaptureConsent } from "#/utils/handle-capture-consent"; | |
| import { BrandButton } from "../settings/brand-button"; | |
| import { I18nKey } from "#/i18n/declaration"; | |
| interface AnalyticsConsentFormModalProps { | |
| onClose: () => void; | |
| } | |
| export function AnalyticsConsentFormModal({ | |
| onClose, | |
| }: AnalyticsConsentFormModalProps) { | |
| const { t } = useTranslation(); | |
| const { mutate: saveUserSettings } = useSaveSettings(); | |
| const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => { | |
| e.preventDefault(); | |
| const formData = new FormData(e.currentTarget); | |
| const analytics = formData.get("analytics") === "on"; | |
| saveUserSettings( | |
| { user_consents_to_analytics: analytics }, | |
| { | |
| onSuccess: () => { | |
| handleCaptureConsent(analytics); | |
| onClose(); | |
| }, | |
| }, | |
| ); | |
| }; | |
| return ( | |
| <ModalBackdrop> | |
| <form | |
| data-testid="user-capture-consent-form" | |
| onSubmit={handleSubmit} | |
| className="flex flex-col gap-2" | |
| > | |
| <ModalBody className="border border-tertiary"> | |
| <BaseModalTitle title={t(I18nKey.ANALYTICS$TITLE)} /> | |
| <BaseModalDescription> | |
| {t(I18nKey.ANALYTICS$DESCRIPTION)} | |
| </BaseModalDescription> | |
| <label className="flex gap-2 items-center self-start"> | |
| <input name="analytics" type="checkbox" defaultChecked /> | |
| {t(I18nKey.ANALYTICS$SEND_ANONYMOUS_DATA)} | |
| </label> | |
| <BrandButton | |
| testId="confirm-preferences" | |
| type="submit" | |
| variant="primary" | |
| className="w-full" | |
| > | |
| {t(I18nKey.ANALYTICS$CONFIRM_PREFERENCES)} | |
| </BrandButton> | |
| </ModalBody> | |
| </form> | |
| </ModalBackdrop> | |
| ); | |
| } | |