1
- import React , { useState } from 'react' ;
2
- import { Link , useHistory } from 'react-router-dom' ;
3
- import { login , register } from '../api/auth' ;
1
+ import React , { useState } from 'react' ;
2
+ import { Link , useHistory } from 'react-router-dom' ;
3
+ import { login , register } from '../api/auth' ;
4
4
import useToken from '../hooks/token' ;
5
- import Label from " ./utils/Label" ;
5
+ import Label from ' ./utils/Label' ;
6
6
7
7
const Register : React . FC = ( ) => {
8
8
const history = useHistory ( ) ;
9
9
const { token, setToken } = useToken ( ) ;
10
- const [ status , setStatus ] = useState ( ) ;
11
- const [ message , setMessage ] = useState ( ) ;
12
-
10
+ const [ status , setStatus ] = useState ( '' ) ;
11
+ const [ message , setMessage ] = useState ( '' ) ;
13
12
14
13
if ( token ) {
15
14
history . push ( '/dashboard' ) ;
16
15
}
17
16
const registerUser = async ( event : any ) => {
18
17
event . preventDefault ( ) ;
19
18
20
- if ( event . target . password . value !== event . target . passwordConfirmed . value ) {
21
- // @ts -ignore
22
- setMessage ( "Passwords doesn't match" ) ;
23
- // @ts -ignore
19
+ if ( event . target . password . value !== event . target . passwordConfirmed . value ) {
20
+ setMessage ( "Passwords doesn't match" ) ;
24
21
setStatus ( 'Error' ) ;
25
- return
22
+ return ;
26
23
}
27
24
28
- let errorOnRegister : boolean = false
25
+ let errorOnRegister : boolean = false ;
29
26
await register (
30
27
event . target . name . value ,
31
28
event . target . email . value ,
32
29
event . target . username . value ,
33
30
event . target . password . value ,
34
- ) . catch ( event => {
31
+ ) . catch ( ( event ) => {
35
32
if ( event . response . status === 409 ) {
36
- errorOnRegister = true
33
+ errorOnRegister = true ;
37
34
}
38
35
} ) ;
39
36
40
37
if ( errorOnRegister ) {
41
- // @ts -ignore
42
- setMessage ( "Email or username already taken" ) ;
43
- // @ts -ignore
38
+ setMessage ( 'Email or username already taken' ) ;
44
39
setStatus ( 'Error' ) ;
45
- return
40
+ return ;
46
41
}
47
42
48
43
const token = await login (
49
- event . target . username . value ,
50
- event . target . password . value ,
44
+ event . target . username . value ,
45
+ event . target . password . value ,
51
46
) ;
52
47
53
48
setToken ( token ) ;
@@ -60,6 +55,13 @@ const Register: React.FC = () => {
60
55
< div className = "flex justify-center px-2 py-6 " >
61
56
< div className = "flex w-full rounded-lg xl:w-3/4 lg:w-11/12 lg:shadow-xl " >
62
57
< div className = "w-full px-8 py-24 bg-white rounded-lg border-blueGray-100 lg:w-8/12 lg:px-24 lg:py-4 lg:rounded-l-none s" >
58
+ < Link to = "/" >
59
+ < img
60
+ className = "rounded mx-auto mb-8 w-1/3"
61
+ src = "https://images2.imgbox.com/ab/88/aS4VAVYc_o.png"
62
+ alt = "Codebench logo"
63
+ />
64
+ </ Link >
63
65
< div className = "relative z-10 text-left " >
64
66
< form className = "mt-6" onSubmit = { registerUser } >
65
67
< div >
@@ -121,22 +123,22 @@ const Register: React.FC = () => {
121
123
</ div >
122
124
< div className = "w-full px-3 mb-6 md:w-1/2 md:mb-0" >
123
125
< label
124
- className = "text-base font-medium leading-relaxed text-blueGray-700"
125
- htmlFor = "password"
126
+ className = "text-base font-medium leading-relaxed text-blueGray-700"
127
+ htmlFor = "password"
126
128
>
127
129
{ ' ' }
128
130
Confirm password{ ' ' }
129
131
</ label >
130
132
< input
131
- className = "block w-full px-4 py-2 mt-2 text-base text-black transition duration-500 ease-in-out transform border-transparent rounded-lg bg-blueGray-100 focus:outline-none focus:shadow-outline focus:ring-2 ring-offset-current ring-offset-2 ext-black focus:border-blueGray-500"
132
- id = "passwordConfirmed"
133
- type = "password"
134
- placeholder = "Confirm Your Password"
135
- required = { true }
133
+ className = "block w-full px-4 py-2 mt-2 text-base text-black transition duration-500 ease-in-out transform border-transparent rounded-lg bg-blueGray-100 focus:outline-none focus:shadow-outline focus:ring-2 ring-offset-current ring-offset-2 ext-black focus:border-blueGray-500"
134
+ id = "passwordConfirmed"
135
+ type = "password"
136
+ placeholder = "Confirm Your Password"
137
+ required = { true }
136
138
/>
137
139
</ div >
138
140
</ div >
139
- < Label status = { status } message = { message } />
141
+ < Label status = { status } message = { message } />
140
142
< button
141
143
type = "submit"
142
144
className = "block w-full px-4 py-3 mt-6 font-semibold text-white transition duration-500 ease-in-out transform rounded-lg bg-gradient-to-r from-black hover:from-black to-black focus:outline-none focus:shadow-outline focus:ring-2 ring-offset-current ring-offset-2 hover:to-black"
@@ -147,16 +149,14 @@ const Register: React.FC = () => {
147
149
< p className = "mt-8 text-center" >
148
150
Already have an account?{ ' ' }
149
151
< Link
150
- className = "font-semibold text-black hover:text-black"
151
- to = "/login"
152
- > Sign In
152
+ className = "font-semibold text-black hover:text-black"
153
+ to = "/login"
154
+ >
155
+ Sign In
153
156
</ Link >
154
157
</ p >
155
158
</ div >
156
159
</ div >
157
- < Link to = "/" >
158
- < img className = "rounded" src = "https://images2.imgbox.com/ab/88/aS4VAVYc_o.png" alt = "Codebench logo" />
159
- </ Link >
160
160
</ div >
161
161
</ div >
162
162
</ div >
0 commit comments