@@ -12,8 +12,11 @@ import { Message } from './Message';
12
12
import PasswordStrengthIndicator from './PasswordStrengthIndicator' ;
13
13
import { OtpDataType } from '../types' ;
14
14
import { AuthorizerVerifyOtp } from './AuthorizerVerifyOtp' ;
15
+ import { getEmailPhoneLabels , getEmailPhonePlaceholder } from '../utils/labels' ;
15
16
16
17
interface InputDataType {
18
+ given_name : string | null ;
19
+ family_name : string | null ;
17
20
email_or_phone_number : string | null ;
18
21
password : string | null ;
19
22
confirmPassword : string | null ;
@@ -36,11 +39,15 @@ export const AuthorizerSignup: FC<{
36
39
const [ otpData , setOtpData ] = useState < OtpDataType > ( { ...initOtpData } ) ;
37
40
const [ successMessage , setSuccessMessage ] = useState ( `` ) ;
38
41
const [ formData , setFormData ] = useState < InputDataType > ( {
42
+ given_name : null ,
43
+ family_name : null ,
39
44
email_or_phone_number : null ,
40
45
password : null ,
41
46
confirmPassword : null ,
42
47
} ) ;
43
48
const [ errorData , setErrorData ] = useState < InputDataType > ( {
49
+ given_name : null ,
50
+ family_name : null ,
44
51
email_or_phone_number : null ,
45
52
password : null ,
46
53
confirmPassword : null ,
@@ -76,6 +83,8 @@ export const AuthorizerSignup: FC<{
76
83
const data : SignupInput = {
77
84
email : email ,
78
85
phone_number : phone_number ,
86
+ given_name : formData . given_name || '' ,
87
+ family_name : formData . family_name || '' ,
79
88
password : formData . password || '' ,
80
89
confirm_password : formData . confirmPassword || '' ,
81
90
} ;
@@ -146,6 +155,22 @@ export const AuthorizerSignup: FC<{
146
155
setError ( `` ) ;
147
156
} ;
148
157
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
+
149
174
useEffect ( ( ) => {
150
175
if ( formData . email_or_phone_number === '' ) {
151
176
setErrorData ( {
@@ -238,19 +263,68 @@ export const AuthorizerSignup: FC<{
238
263
< div className = { styles [ 'styled-form-group' ] } >
239
264
< label
240
265
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"
242
315
>
243
- < span > * </ span > Email / Phone Number
316
+ < span > * </ span >
317
+ { getEmailPhoneLabels ( config ) }
244
318
</ label >
245
319
< 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"
248
322
className = { `${ styles [ 'form-input-field' ] } ${
249
323
errorData . email_or_phone_number
250
324
? styles [ 'input-error-content' ]
251
325
: null
252
326
} `}
253
- placeholder = "eg. [email protected] / +919999999999"
327
+ placeholder = { getEmailPhonePlaceholder ( config ) }
254
328
type = "text"
255
329
value = { formData . email_or_phone_number || '' }
256
330
onChange = { e =>
@@ -330,9 +404,13 @@ export const AuthorizerSignup: FC<{
330
404
disabled = {
331
405
loading ||
332
406
disableSignupButton ||
407
+ ! ! errorData . given_name ||
408
+ ! ! errorData . family_name ||
333
409
! ! errorData . email_or_phone_number ||
334
410
! ! errorData . password ||
335
411
! ! errorData . confirmPassword ||
412
+ ! formData . given_name ||
413
+ ! formData . family_name ||
336
414
! formData . email_or_phone_number ||
337
415
! formData . password ||
338
416
! formData . confirmPassword
0 commit comments