1
1
import React , { useState } from 'react' ;
2
2
import { Link , useHistory } from 'react-router-dom' ;
3
- import { register } from '../api/auth' ;
3
+ import { login , register } from '../api/auth' ;
4
4
import useToken from '../hooks/token' ;
5
5
import Label from "./utils/Label" ;
6
6
@@ -25,14 +25,33 @@ const Register: React.FC = () => {
25
25
return
26
26
}
27
27
28
+ let errorOnRegister : boolean = false
28
29
await register (
29
30
event . target . name . value ,
30
31
event . target . email . value ,
31
32
event . target . username . value ,
32
33
event . target . password . value ,
34
+ ) . catch ( event => {
35
+ if ( event . response . status === 409 ) {
36
+ errorOnRegister = true
37
+ }
38
+ } ) ;
39
+
40
+ if ( errorOnRegister ) {
41
+ // @ts -ignore
42
+ setMessage ( "Email or username already taken" ) ;
43
+ // @ts -ignore
44
+ setStatus ( 'Error' ) ;
45
+ return
46
+ }
47
+
48
+ const token = await login (
49
+ event . target . username . value ,
50
+ event . target . password . value ,
33
51
) ;
34
52
35
- history . push ( '/login' ) ;
53
+ setToken ( token ) ;
54
+ history . push ( '/dashboard' ) ;
36
55
} ;
37
56
38
57
return (
@@ -135,7 +154,9 @@ const Register: React.FC = () => {
135
154
</ p >
136
155
</ div >
137
156
</ div >
138
- < img className = "rounded" src = "https://images2.imgbox.com/ab/88/aS4VAVYc_o.png" alt = "Codebench logo" />
157
+ < Link to = "/" >
158
+ < img className = "rounded" src = "https://images2.imgbox.com/ab/88/aS4VAVYc_o.png" alt = "Codebench logo" />
159
+ </ Link >
139
160
</ div >
140
161
</ div >
141
162
</ div >
0 commit comments