@@ -12,8 +12,11 @@ import { Message } from './Message';
1212import PasswordStrengthIndicator from './PasswordStrengthIndicator' ;
1313import { OtpDataType } from '../types' ;
1414import { AuthorizerVerifyOtp } from './AuthorizerVerifyOtp' ;
15+ import { getEmailPhoneLabels , getEmailPhonePlaceholder } from '../utils/labels' ;
1516
1617interface InputDataType {
18+ given_name : string | null ;
19+ family_name : string | null ;
1720 email_or_phone_number : string | null ;
1821 password : string | null ;
1922 confirmPassword : string | null ;
@@ -36,11 +39,15 @@ export const AuthorizerSignup: FC<{
3639 const [ otpData , setOtpData ] = useState < OtpDataType > ( { ...initOtpData } ) ;
3740 const [ successMessage , setSuccessMessage ] = useState ( `` ) ;
3841 const [ formData , setFormData ] = useState < InputDataType > ( {
42+ given_name : null ,
43+ family_name : null ,
3944 email_or_phone_number : null ,
4045 password : null ,
4146 confirmPassword : null ,
4247 } ) ;
4348 const [ errorData , setErrorData ] = useState < InputDataType > ( {
49+ given_name : null ,
50+ family_name : null ,
4451 email_or_phone_number : null ,
4552 password : null ,
4653 confirmPassword : null ,
@@ -76,6 +83,8 @@ export const AuthorizerSignup: FC<{
7683 const data : SignupInput = {
7784 email : email ,
7885 phone_number : phone_number ,
86+ given_name : formData . given_name || '' ,
87+ family_name : formData . family_name || '' ,
7988 password : formData . password || '' ,
8089 confirm_password : formData . confirmPassword || '' ,
8190 } ;
@@ -146,6 +155,22 @@ export const AuthorizerSignup: FC<{
146155 setError ( `` ) ;
147156 } ;
148157
158+ useEffect ( ( ) => {
159+ if ( ( formData . given_name || '' ) . trim ( ) === '' ) {
160+ setErrorData ( { ...errorData , given_name : 'First Name is required' } ) ;
161+ } else {
162+ setErrorData ( { ...errorData , given_name : null } ) ;
163+ }
164+ } , [ formData . given_name ] ) ;
165+
166+ useEffect ( ( ) => {
167+ if ( ( formData . family_name || '' ) . trim ( ) === '' ) {
168+ setErrorData ( { ...errorData , family_name : 'Last Name is required' } ) ;
169+ } else {
170+ setErrorData ( { ...errorData , family_name : null } ) ;
171+ }
172+ } , [ formData . family_name ] ) ;
173+
149174 useEffect ( ( ) => {
150175 if ( formData . email_or_phone_number === '' ) {
151176 setErrorData ( {
@@ -238,19 +263,68 @@ export const AuthorizerSignup: FC<{
238263 < div className = { styles [ 'styled-form-group' ] } >
239264 < label
240265 className = { styles [ 'form-input-label' ] }
241- htmlFor = "authorizer-sign-up-email"
266+ htmlFor = "authorizer-sign-up-given-name"
267+ >
268+ < span > * </ span > First Name
269+ </ label >
270+ < input
271+ name = "given_name"
272+ id = "authorizer-sign-up-given-name"
273+ className = { `${ styles [ 'form-input-field' ] } ${
274+ errorData . given_name ? styles [ 'input-error-content' ] : null
275+ } `}
276+ placeholder = "eg. John"
277+ type = "text"
278+ value = { formData . given_name || '' }
279+ onChange = { e => onInputChange ( 'given_name' , e . target . value ) }
280+ />
281+ { errorData . given_name && (
282+ < div className = { styles [ 'form-input-error' ] } >
283+ { errorData . given_name }
284+ </ div >
285+ ) }
286+ </ div >
287+ < div className = { styles [ 'styled-form-group' ] } >
288+ < label
289+ className = { styles [ 'form-input-label' ] }
290+ htmlFor = "authorizer-sign-up-family-name"
291+ >
292+ < span > * </ span > Last Name
293+ </ label >
294+ < input
295+ name = "family_name"
296+ id = "authorizer-sign-up-family-name"
297+ className = { `${ styles [ 'form-input-field' ] } ${
298+ errorData . family_name ? styles [ 'input-error-content' ] : null
299+ } `}
300+ placeholder = "eg. Doe"
301+ type = "text"
302+ value = { formData . family_name || '' }
303+ onChange = { e => onInputChange ( 'family_name' , e . target . value ) }
304+ />
305+ { errorData . family_name && (
306+ < div className = { styles [ 'form-input-error' ] } >
307+ { errorData . family_name }
308+ </ div >
309+ ) }
310+ </ div >
311+ < div className = { styles [ 'styled-form-group' ] } >
312+ < label
313+ className = { styles [ 'form-input-label' ] }
314+ htmlFor = "authorizer-sign-up-email-or-phone-number"
242315 >
243- < span > * </ span > Email / Phone Number
316+ < span > * </ span >
317+ { getEmailPhoneLabels ( config ) }
244318 </ label >
245319 < input
246- name = "eemail_or_phone_numbermail "
247- id = "authorizer-login -email-or-phone-number"
320+ name = "email_or_phone_number "
321+ id = "authorizer-sign-up -email-or-phone-number"
248322 className = { `${ styles [ 'form-input-field' ] } ${
249323 errorData . email_or_phone_number
250324 ? styles [ 'input-error-content' ]
251325 : null
252326 } `}
253- placeholder = "eg. hello@world.com / +919999999999"
327+ placeholder = { getEmailPhonePlaceholder ( config ) }
254328 type = "text"
255329 value = { formData . email_or_phone_number || '' }
256330 onChange = { e =>
@@ -330,9 +404,13 @@ export const AuthorizerSignup: FC<{
330404 disabled = {
331405 loading ||
332406 disableSignupButton ||
407+ ! ! errorData . given_name ||
408+ ! ! errorData . family_name ||
333409 ! ! errorData . email_or_phone_number ||
334410 ! ! errorData . password ||
335411 ! ! errorData . confirmPassword ||
412+ ! formData . given_name ||
413+ ! formData . family_name ||
336414 ! formData . email_or_phone_number ||
337415 ! formData . password ||
338416 ! formData . confirmPassword
0 commit comments