11import React , { useState } from 'react' ;
22import { Link , useHistory } from 'react-router-dom' ;
3- import { register } from '../api/auth' ;
3+ import { login , register } from '../api/auth' ;
44import useToken from '../hooks/token' ;
55import Label from "./utils/Label" ;
66
@@ -25,14 +25,33 @@ const Register: React.FC = () => {
2525 return
2626 }
2727
28+ let errorOnRegister : boolean = false
2829 await register (
2930 event . target . name . value ,
3031 event . target . email . value ,
3132 event . target . username . value ,
3233 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 ,
3351 ) ;
3452
35- history . push ( '/login' ) ;
53+ setToken ( token ) ;
54+ history . push ( '/dashboard' ) ;
3655 } ;
3756
3857 return (
@@ -135,7 +154,9 @@ const Register: React.FC = () => {
135154 </ p >
136155 </ div >
137156 </ 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 >
139160 </ div >
140161 </ div >
141162 </ div >
0 commit comments