diff --git a/public/locales/en-GB/app.json b/public/locales/en-GB/app.json
index fe52c85..389eeb7 100644
--- a/public/locales/en-GB/app.json
+++ b/public/locales/en-GB/app.json
@@ -8,6 +8,7 @@
"{{name}} is talking…": "{{name}} is talking…",
"{{names}}, {{name}}": "{{names}}, {{name}}",
"{{roomName}} - Walkie-talkie call": "{{roomName}} - Walkie-talkie call",
+ "<0>0><1>1>You may withdraw consent by unchecking this box. If you are currently in a call, this setting will take effect at the end of the call.": "<0>0><1>1>You may withdraw consent by unchecking this box. If you are currently in a call, this setting will take effect at the end of the call.",
"<0>Already have an account?0><1><0>Log in0> Or <2>Access as a guest2>1>": "<0>Already have an account?0><1><0>Log in0> Or <2>Access as a guest2>1>",
"<0>Create an account0> Or <2>Access as a guest2>": "<0>Create an account0> Or <2>Access as a guest2>",
"<0>Join call now0><1>Or1><2>Copy call link and join later2>": "<0>Join call now0><1>Or1><2>Copy call link and join later2>",
@@ -21,7 +22,7 @@
"Avatar": "Avatar",
"By clicking \"Go\", you agree to our <2>Terms and conditions2>": "By clicking \"Go\", you agree to our <2>Terms and conditions2>",
"By clicking \"Join call now\", you agree to our <2>Terms and conditions2>": "By clicking \"Join call now\", you agree to our <2>Terms and conditions2>",
- "By ticking this box you consent to the collection of anonymous data, which we use to improve your experience. You can find more information about which data we track in our ": "By ticking this box you consent to the collection of anonymous data, which we use to improve your experience. You can find more information about which data we track in our ",
+ "By participating in this beta, you consent to the collection of anonymous data, which we use to improve the product. You can find more information about which data we track in our <2>Privacy Policy2> and our <5>Cookie Policy5>.": "By participating in this beta, you consent to the collection of anonymous data, which we use to improve the product. You can find more information about which data we track in our <2>Privacy Policy2> and our <5>Cookie Policy5>.",
"Call link copied": "Call link copied",
"Call type menu": "Call type menu",
"Camera": "Camera",
@@ -85,7 +86,6 @@
"Press and hold spacebar to talk over {{name}}": "Press and hold spacebar to talk over {{name}}",
"Press and hold to talk": "Press and hold to talk",
"Press and hold to talk over {{name}}": "Press and hold to talk over {{name}}",
- "Privacy Policy": "Privacy Policy",
"Profile": "Profile",
"Recaptcha dismissed": "Recaptcha dismissed",
"Recaptcha not loaded": "Recaptcha not loaded",
diff --git a/src/analytics/AnalyticsNotice.tsx b/src/analytics/AnalyticsNotice.tsx
new file mode 100644
index 0000000..feceef7
--- /dev/null
+++ b/src/analytics/AnalyticsNotice.tsx
@@ -0,0 +1,14 @@
+import React, { FC } from "react";
+import { Trans } from "react-i18next";
+
+import { Link } from "../typography/Typography";
+
+export const AnalyticsNotice: FC = () => (
+
+ By participating in this beta, you consent to the collection of anonymous
+ data, which we use to improve the product. You can find more information
+ about which data we track in our{" "}
+ Privacy Policy and our{" "}
+ Cookie Policy.
+
+);
diff --git a/src/analytics/AnalyticsOptInDescription.tsx b/src/analytics/AnalyticsOptInDescription.tsx
deleted file mode 100644
index 46727f5..0000000
--- a/src/analytics/AnalyticsOptInDescription.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import { t } from "i18next";
-import React from "react";
-
-import { Link } from "../typography/Typography";
-
-export const optInDescription: () => JSX.Element = () => {
- return (
- <>
- <>
- {t(
- "By ticking this box you consent to the collection of anonymous data, which we use to improve your experience. You can find more information about which data we track in our "
- )}
- >
-
- <>{t("Privacy Policy")}>
-
- .
- >
- );
-};
diff --git a/src/form/Form.tsx b/src/form/Form.tsx
index beea4c8..fd98a62 100644
--- a/src/form/Form.tsx
+++ b/src/form/Form.tsx
@@ -15,14 +15,14 @@ limitations under the License.
*/
import classNames from "classnames";
-import React, { FormEventHandler, forwardRef } from "react";
+import React, { FormEventHandler, forwardRef, ReactNode } from "react";
import styles from "./Form.module.css";
interface FormProps {
className: string;
onSubmit: FormEventHandler;
- children: JSX.Element[];
+ children: ReactNode[];
}
export const Form = forwardRef(
diff --git a/src/home/RegisteredView.module.css b/src/home/RegisteredView.module.css
index ae43b5b..a96bd53 100644
--- a/src/home/RegisteredView.module.css
+++ b/src/home/RegisteredView.module.css
@@ -37,3 +37,7 @@ limitations under the License.
.recentCallsTitle {
margin-bottom: 32px;
}
+
+.notice {
+ color: var(--secondary-content);
+}
diff --git a/src/home/RegisteredView.tsx b/src/home/RegisteredView.tsx
index a6278c2..06a6720 100644
--- a/src/home/RegisteredView.tsx
+++ b/src/home/RegisteredView.tsx
@@ -39,11 +39,11 @@ import { CallList } from "./CallList";
import { UserMenuContainer } from "../UserMenuContainer";
import { useModalTriggerState } from "../Modal";
import { JoinExistingCallModal } from "./JoinExistingCallModal";
-import { Title } from "../typography/Typography";
+import { Caption, Title } from "../typography/Typography";
import { Form } from "../form/Form";
import { CallType, CallTypeDropdown } from "./CallTypeDropdown";
import { useOptInAnalytics } from "../settings/useSetting";
-import { optInDescription } from "../analytics/AnalyticsOptInDescription";
+import { AnalyticsNotice } from "../analytics/AnalyticsNotice";
interface Props {
client: MatrixClient;
@@ -54,7 +54,7 @@ export function RegisteredView({ client, isPasswordlessUser }: Props) {
const [callType, setCallType] = useState(CallType.Video);
const [loading, setLoading] = useState(false);
const [error, setError] = useState();
- const [optInAnalytics, setOptInAnalytics] = useOptInAnalytics();
+ const [optInAnalytics] = useOptInAnalytics();
const history = useHistory();
const { t } = useTranslation();
const { modalState, modalProps } = useModalTriggerState();
@@ -144,15 +144,11 @@ export function RegisteredView({ client, isPasswordlessUser }: Props) {
{loading ? t("Loading…") : t("Go")}
- ) =>
- setOptInAnalytics(event.target.checked)
- }
- />
+ {optInAnalytics === null && (
+