Skip to content

Commit 01b024c

Browse files
authored
fix(clerk-js,localizations,types): Add formFieldError__verificationLinkExpired key (#1738)
1 parent 60c5a4b commit 01b024c

File tree

6 files changed

+20
-5
lines changed

6 files changed

+20
-5
lines changed

.changeset/orange-masks-rush.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@clerk/localizations': patch
3+
'@clerk/clerk-js': patch
4+
'@clerk/types': patch
5+
---
6+
7+
This PR replaces `The verification link expired. Please resend it.` message with the localization key `formFieldError__verificationLinkExpired`. The english message was also adjust to `The verification link expired. Please request a new link.` to make the second sentence clearer.

packages/clerk-js/src/ui/components/SignIn/SignInFactorOneEmailLinkCard.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import React from 'react';
44
import { EmailLinkStatusCard } from '../../common';
55
import { buildMagicLinkRedirectUrl } from '../../common/redirects';
66
import { useCoreClerk, useCoreSignIn, useEnvironment, useSignInContext } from '../../contexts';
7-
import { Flow, localizationKeys } from '../../customizables';
7+
import { Flow, localizationKeys, useLocalizations } from '../../customizables';
88
import type { VerificationCodeCardProps } from '../../elements';
99
import { VerificationLinkCard } from '../../elements';
1010
import { useCardState } from '../../elements/contexts';
@@ -19,6 +19,7 @@ type SignInFactorOneEmailLinkCardProps = Pick<VerificationCodeCardProps, 'onShow
1919
};
2020

2121
export const SignInFactorOneEmailLinkCard = (props: SignInFactorOneEmailLinkCardProps) => {
22+
const { t } = useLocalizations();
2223
const card = useCardState();
2324
const signIn = useCoreSignIn();
2425
const signInContext = useSignInContext();
@@ -50,7 +51,7 @@ export const SignInFactorOneEmailLinkCard = (props: SignInFactorOneEmailLinkCard
5051
const handleVerificationResult = async (si: SignInResource) => {
5152
const ver = si.firstFactorVerification;
5253
if (ver.status === 'expired') {
53-
card.setError('The verification link expired. Please resend it.');
54+
card.setError(t(localizationKeys('formFieldError__verificationLinkExpired')));
5455
} else if (ver.verifiedFromTheSameClient()) {
5556
setShowVerifyModal(true);
5657
} else {

packages/clerk-js/src/ui/components/SignUp/SignUpEmailLinkCard.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import React from 'react';
44
import { EmailLinkStatusCard } from '../../common';
55
import { buildMagicLinkRedirectUrl } from '../../common/redirects';
66
import { useCoreClerk, useCoreSignUp, useEnvironment, useSignUpContext } from '../../contexts';
7-
import { Flow, localizationKeys } from '../../customizables';
7+
import { Flow, localizationKeys, useLocalizations } from '../../customizables';
88
import { VerificationLinkCard } from '../../elements';
99
import { useCardState } from '../../elements/contexts';
1010
import { useMagicLink } from '../../hooks/useMagicLink';
@@ -13,6 +13,7 @@ import { handleError } from '../../utils';
1313
import { completeSignUpFlow } from './util';
1414

1515
export const SignUpEmailLinkCard = () => {
16+
const { t } = useLocalizations();
1617
const signUp = useCoreSignUp();
1718
const signUpContext = useSignUpContext();
1819
const { navigateAfterSignUp } = signUpContext;
@@ -44,7 +45,7 @@ export const SignUpEmailLinkCard = () => {
4445
const handleVerificationResult = async (su: SignUpResource) => {
4546
const ver = su.verifications.emailAddress;
4647
if (ver.status === 'expired') {
47-
card.setError('The verification link expired. Please resend it.');
48+
card.setError(t(localizationKeys('formFieldError__verificationLinkExpired')));
4849
} else if (ver.verifiedFromTheSameClient()) {
4950
setShowVerifyModal(true);
5051
} else {

packages/localizations/src/de-DE.ts

+4
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ export const deDE: LocalizationResource = {
3636
formFieldInputPlaceholder__lastName: '',
3737
formFieldInputPlaceholder__backupCode: '',
3838
formFieldInputPlaceholder__organizationName: '',
39+
formFieldError__notMatchingPasswords: `Passwörter stimmen nicht überein.`,
40+
formFieldError__matchingPasswords: 'Passwörter stimmen überein.',
41+
formFieldError__verificationLinkExpired:
42+
'Der Bestätigungslink ist abgelaufen. Bitte fordern Sie einen neuen Link an.',
3943
formFieldAction__forgotPassword: 'Passwort vergessen?',
4044
formFieldHintText__optional: 'Optional',
4145
formButtonPrimary: 'Fortsetzen',

packages/localizations/src/en-US.ts

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ export const enUS: LocalizationResource = {
6161
formFieldInputPlaceholder__organizationDomainEmailAddress: '',
6262
formFieldError__notMatchingPasswords: `Passwords don't match.`,
6363
formFieldError__matchingPasswords: 'Passwords match.',
64+
formFieldError__verificationLinkExpired: 'The verification link expired. Please request a new link.',
6465
formFieldAction__forgotPassword: 'Forgot password?',
6566
formFieldHintText__optional: 'Optional',
6667
formButtonPrimary: 'Continue',

packages/types/src/localization.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export type LocalizationValue = string;
88
* Users aiming to customise a few strings can also peak at the `data-localization-key` attribute by inspecting
99
* the DOM and updating the corresponding key.
1010
* Users aiming to completely localize the components by providing a complete translation can use
11-
* the default english resource object from {@link https://github.com/clerkinc/javascript our open source repo}
11+
* the default english resource object from {@link https://github.com/clerkinc/javascript Clerk's open source repo}
1212
* as a starting point.
1313
*/
1414
export type LocalizationResource = DeepPartial<_LocalizationResource>;
@@ -78,6 +78,7 @@ type _LocalizationResource = {
7878
formFieldInputPlaceholder__organizationDomainEmailAddress: LocalizationValue;
7979
formFieldError__notMatchingPasswords: LocalizationValue;
8080
formFieldError__matchingPasswords: LocalizationValue;
81+
formFieldError__verificationLinkExpired: LocalizationValue;
8182
formFieldAction__forgotPassword: LocalizationValue;
8283
formFieldHintText__optional: LocalizationValue;
8384
formButtonPrimary: LocalizationValue;

0 commit comments

Comments
 (0)