privacy policy

master
alex 2024-02-08 16:37:09 +01:00
parent d5148f8c48
commit ec13a01bc4
3 changed files with 47 additions and 3 deletions

View File

@ -64,7 +64,8 @@
"calendarMinEarliestBookingTimeRequired": "Minimaler frühester Buchungszeitpunkt ist erforderlich",
"companyNameRequired": "Firmenname ist erforderlich",
"companyNameMinLength": "Firmenname muss mindestens {{minLength}} Zeichen lang sein",
"recaptchaRequired": "Bitte bestätigen Sie, dass Sie kein Roboter sind"
"recaptchaRequired": "Bitte bestätigen Sie, dass Sie kein Roboter sind",
"privacyPolicyRequired": "Bitte akzeptieren Sie die Datenschutzbestimmungen"
},
"request": {
"inputsInvalid": {
@ -140,6 +141,8 @@
},
"authentication": {
"rememberMe": "Angemeldet bleiben",
"privacyPolicy": "Ich habe die <dataLink>{{dataPrivacy}}</dataLink> gelesen und akzeptiere sie.",
"privacyPolicyLink": "Datenschutzerklärung",
"loginLink": "Jetzt anmelden",
"signUpLink": "Jetzt registrieren",
"login": {

View File

@ -64,7 +64,8 @@
"calendarMinEarliestBookingTimeRequired": "Please enter the min. earliest booking time",
"companyNameRequired": "Please enter the company name",
"companyNameMinLength": "Company name must be at least {{minLength}} characters",
"recaptchaRequired": "Please confirm that you are not a robot"
"recaptchaRequired": "Please confirm that you are not a robot",
"privacyPolicyRequired": "Please accept the privacy policy"
},
"request": {
"inputsInvalid": {
@ -140,6 +141,8 @@
},
"authentication": {
"rememberMe": "Remember me",
"privacyPolicy": "I have read and accept the <dataLink>{{dataPrivacy}}</dataLink>",
"privacyPolicyLink": "Privacy Policy",
"loginLink": "Login",
"signUpLink": "Sign up now",
"login": {

View File

@ -24,7 +24,7 @@ import {
MyPasswordFormInput,
MyUsernameFormInput,
} from "../../Components/MyFormInputs";
import { useTranslation } from "react-i18next";
import { Trans, useTranslation } from "react-i18next";
import MyAppLogo from "../../Components/MyAppLogo";
import { useNavigate } from "react-router-dom";
import ReCAPTCHA from "react-google-recaptcha";
@ -79,6 +79,39 @@ function RememberMeCheckbox() {
);
}
function PrivacyPolicyCheckbox() {
const { t } = useTranslation();
const link = (
<a
href={process.env.REACT_APP_PRIVACY_POLICY_URL}
target="_blank"
rel="noreferrer"
/>
);
return (
<Form.Item
name="privacyPolicy"
valuePropName="checked"
rules={[
{
required: true,
message: t("common.inputRules.privacyPolicyRequired"),
},
]}
>
<Checkbox>
<Trans
i18nKey="authentication.privacyPolicy"
values={{ dataPrivacy: t("authentication.privacyPolicyLink") }}
components={{ dataLink: link }}
/>
</Checkbox>
</Form.Item>
);
}
const LoginStep = {
ACCOUNT_NAME: 1,
PASSWORD: 2,
@ -229,6 +262,8 @@ function Login({ notificationApi }) {
onChange={(value) => (recaptchaValueRef.current = value)}
/>
</Form.Item>
<PrivacyPolicyCheckbox />
</div>
<Button
@ -248,6 +283,7 @@ function Login({ notificationApi }) {
"password",
"rememberMe",
"recaptcha",
"privacyPolicy",
];
}
@ -430,6 +466,8 @@ function SignUp({ notificationApi }) {
/>
</Form.Item>
<PrivacyPolicyCheckbox />
<Button
type="primary"
size="large"