privacy policy
parent
d5148f8c48
commit
ec13a01bc4
|
@ -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": {
|
||||
|
|
|
@ -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": {
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue