@@ -2,6 +2,7 @@ import type * as Common from '@clerk/elements/common';
22import * as React from 'react' ;
33import { ToggleButton } from 'react-aria-components' ;
44
5+ import { LOCALIZATION_NEEDED } from '~/constants/localizations' ;
56import { link } from '~/primitives/link' ;
67
78import { EmailOrUsernameField } from './email-or-username-field' ;
@@ -10,20 +11,18 @@ import { PhoneNumberField } from './phone-number-field';
1011export function EmailOrUsernameOrPhoneNumberField ( {
1112 className,
1213 name = undefined ,
13- labelEmailOrUsername = 'Email address or username' ,
14- labelPhoneNumber = 'Phone number' ,
15- toggleLabelEmailOrUsername = 'Use email or username' ,
16- toggleLabelPhoneNumber = 'Use phone' ,
17- locationBasedCountryIso,
18- toggleDescription = 'Toggle between email or username, and phone.' ,
14+ toggleLabelEmailOrUsername,
15+ toggleLabelPhoneNumber,
1916 ...props
2017} : {
21- labelEmailOrUsername ?: React . ReactNode ;
22- labelPhoneNumber ?: React . ReactNode ;
23- toggleLabelEmailOrUsername ?: string ;
24- toggleLabelPhoneNumber ?: string ;
25- locationBasedCountryIso : React . ComponentProps < typeof PhoneNumberField > [ 'locationBasedCountryIso' ] ;
26- toggleDescription ?: string ;
18+ /**
19+ * **Note:** this prop is required as the translation differs between `signIn` and `signUp`
20+ */
21+ toggleLabelEmailOrUsername : React . ReactNode ;
22+ /**
23+ * **Note:** this prop is required as the translation differs between `signIn` and `signUp`
24+ */
25+ toggleLabelPhoneNumber : React . ReactNode ;
2726} & Omit < React . ComponentProps < typeof Common . Input > , 'type' > ) {
2827 const [ showPhoneNumberField , setShowPhoneNumberField ] = React . useState ( false ) ;
2928
@@ -33,24 +32,21 @@ export function EmailOrUsernameOrPhoneNumberField({
3332 onChange = { setShowPhoneNumberField }
3433 className = { link ( { size : 'sm' , disabled : props . disabled , focusVisible : 'data-attribute' } ) }
3534 >
36- < span className = 'sr-only' > { toggleDescription } </ span >
35+ < span className = 'sr-only' > { LOCALIZATION_NEEDED . formFieldAccessibleLabel__emailOrUsernameOrPhone } </ span >
3736 { showPhoneNumberField ? toggleLabelEmailOrUsername : toggleLabelPhoneNumber }
3837 </ ToggleButton >
3938 ) ;
4039
4140 return showPhoneNumberField ? (
4241 < PhoneNumberField
43- label = { labelPhoneNumber }
4442 name = { name }
45- locationBasedCountryIso = { locationBasedCountryIso }
4643 alternativeFieldTrigger = { toggle }
4744 { ...props }
4845 />
4946 ) : (
5047 < EmailOrUsernameField
5148 { ...props }
5249 name = { name }
53- label = { labelEmailOrUsername }
5450 alternativeFieldTrigger = { toggle }
5551 />
5652 ) ;
0 commit comments