/* Copyright 2024 New Vector Ltd. Copyright 2021 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE files in the repository root for full details. */ import React from "react"; import BaseDialog from "./BaseDialog"; import { _t } from "../../../languageHandler"; import DialogButtons from "../elements/DialogButtons"; import Modal, { type ComponentProps } from "../../../Modal"; import SdkConfig from "../../../SdkConfig"; import { getPolicyUrl } from "../../../toasts/AnalyticsToast"; import ExternalLink from "../elements/ExternalLink"; export enum ButtonClicked { Primary, Cancel, } interface IProps { onFinished(buttonClicked?: ButtonClicked): void; analyticsOwner: string; privacyPolicyUrl?: string; primaryButton?: string; cancelButton?: string; hasCancel?: boolean; } export const AnalyticsLearnMoreDialog: React.FC = ({ onFinished, analyticsOwner, privacyPolicyUrl, primaryButton, cancelButton, hasCancel, }) => { const onPrimaryButtonClick = (): void => onFinished(ButtonClicked.Primary); const onCancelButtonClick = (): void => onFinished(ButtonClicked.Cancel); const privacyPolicyLink = privacyPolicyUrl ? ( {_t( "analytics|privacy_policy", {}, { PrivacyPolicyUrl: (sub) => { return ( {sub} ); }, }, )} ) : ( "" ); return (
{_t("analytics|pseudonymous_usage_data", { analyticsOwner })}
  • {_t("analytics|bullet_1", {}, { Bold: (sub) => {sub} })}
  • {_t("analytics|bullet_2", {}, { Bold: (sub) => {sub} })}
  • {_t("analytics|disable_prompt")}
{privacyPolicyLink}
); }; export const showDialog = ( props: Omit, "cookiePolicyUrl" | "analyticsOwner">, ): void => { const privacyPolicyUrl = getPolicyUrl(); const analyticsOwner = SdkConfig.get("analytics_owner") ?? SdkConfig.get("brand"); Modal.createDialog( AnalyticsLearnMoreDialog, { privacyPolicyUrl, analyticsOwner, ...props, }, "mx_AnalyticsLearnMoreDialog_wrapper", ); };