@@ -10,48 +10,46 @@ import { toast } from 'react-toastify';
10
10
import { AxiosError , isAxiosError } from 'axios' ;
11
11
import axiosInstance from '@/helpers/axios-instance' ;
12
12
import userState from '@/utils/user-state' ;
13
-
13
+ import ThemeToggle from '@/components/theme-toggle-button' ;
14
14
function signup ( ) {
15
15
const navigate = useNavigate ( ) ;
16
16
const {
17
17
register,
18
18
handleSubmit,
19
19
formState : { errors, isSubmitting } ,
20
20
reset,
21
- setError
21
+ setError,
22
22
} = useForm < TSignUpSchema > ( { resolver : zodResolver ( signUpSchema ) } ) ;
23
23
24
24
const onSubmit = async ( data : FieldValues ) => {
25
25
try {
26
- const res = axiosInstance . post ( '/api/auth/email-password/signup' , data )
26
+ const res = axiosInstance . post ( '/api/auth/email-password/signup' , data ) ;
27
27
toast . promise ( res , {
28
28
pending : 'Creating account ...' ,
29
29
success : {
30
30
render ( { data } ) {
31
31
const userId = data ?. data ?. data ?. user ?. _id ;
32
32
const userRole = data ?. data ?. data ?. user ?. role ;
33
- userState . setUser ( { _id : userId , role : userRole } )
34
- reset ( )
35
- navigate ( '/' )
36
- return data ?. data ?. message
33
+ userState . setUser ( { _id : userId , role : userRole } ) ;
34
+ reset ( ) ;
35
+ navigate ( '/' ) ;
36
+ return data ?. data ?. message ;
37
37
} ,
38
38
} ,
39
39
error : {
40
40
render ( { data } ) {
41
41
if ( data instanceof AxiosError ) {
42
42
if ( data ?. response ?. data ?. message . includes ( 'Username' ) ) {
43
- setError ( 'userName' , { type : 'manual' , message : data ?. response ?. data ?. message } ) ;
43
+ setError ( 'userName' , { type : 'manual' , message : data ?. response ?. data ?. message } ) ;
44
44
} else {
45
- setError ( 'email' , { type : 'manual' , message : data ?. response ?. data ?. message } ) ;
45
+ setError ( 'email' , { type : 'manual' , message : data ?. response ?. data ?. message } ) ;
46
46
}
47
47
}
48
- return " Signup failed"
48
+ return ' Signup failed' ;
49
49
} ,
50
50
} ,
51
- }
52
- )
53
- return ( await res ) . data
54
-
51
+ } ) ;
52
+ return ( await res ) . data ;
55
53
} catch ( error ) {
56
54
if ( isAxiosError ( error ) ) {
57
55
console . error ( error . response ?. data ?. message ) ;
@@ -61,14 +59,16 @@ function signup() {
61
59
}
62
60
} ;
63
61
64
-
65
62
return (
66
- < div className = "m-4 flex-grow cursor-default bg-white py-4" >
67
- < div className = "mb-4 flex justify-center" >
63
+ < div className = "flex-grow cursor-default bg-white py-4 dark:bg-dark-card " >
64
+ < div className = "m-4 mb-4 flex justify-center" >
68
65
< div className = "flex w-full items-center justify-center" >
69
- < h2 className = "w-3/4 text-center text-lg font-bold text-black sm:text-xl" >
66
+ < h2 className = "w-3/4 pl-48 text-center text-lg font-bold text-black dark:text-dark-primary sm:text-xl" >
70
67
Sign up to WanderLust
71
68
</ h2 >
69
+ < div className = "flex items-center justify-end px-4 sm:px-20" >
70
+ < ThemeToggle />
71
+ </ div >
72
72
</ div >
73
73
</ div >
74
74
< div className = "m-2 mt-8 flex flex-col items-center justify-center gap-2" >
@@ -78,7 +78,7 @@ function signup() {
78
78
{ ...register ( 'userName' ) }
79
79
type = "text"
80
80
placeholder = "Username"
81
- className = "w-full rounded-lg bg-zinc-100 p-3 font-normal placeholder:text-sm placeholder: text-neutral-500 "
81
+ className = "dark:placholder w-full rounded-lg bg-zinc-100 p-3 font-normal placeholder:text-sm dark:bg-dark-field dark: text-dark-textInField "
82
82
/>
83
83
{ errors . userName && (
84
84
< p className = "p-3 text-xs text-red-500" > { `${ errors . userName . message } ` } </ p >
@@ -89,7 +89,7 @@ function signup() {
89
89
{ ...register ( 'fullName' ) }
90
90
type = "text"
91
91
placeholder = "Name"
92
- className = "w-full rounded-lg bg-zinc-100 p-3 font-normal placeholder:text-sm placeholder: text-neutral-500 "
92
+ className = "w-full rounded-lg bg-zinc-100 p-3 font-normal placeholder:text-sm dark:bg-dark-field dark: text-dark-textInField "
93
93
/>
94
94
{ errors . fullName && (
95
95
< p className = "p-3 text-xs text-red-500" > { `${ errors . fullName . message } ` } </ p >
@@ -100,7 +100,7 @@ function signup() {
100
100
{ ...register ( 'email' ) }
101
101
type = "email"
102
102
placeholder = "Email"
103
- className = "w-full rounded-lg bg-zinc-100 p-3 font-normal placeholder:text-sm placeholder: text-neutral-500 "
103
+ className = "w-full rounded-lg bg-zinc-100 p-3 font-normal placeholder:text-sm dark:bg-dark-field dark: text-dark-textInField "
104
104
/>
105
105
{ errors . email && (
106
106
< p className = "p-3 text-xs text-red-500" > { `${ errors . email . message } ` } </ p >
@@ -111,7 +111,7 @@ function signup() {
111
111
{ ...register ( 'password' ) }
112
112
type = "password"
113
113
placeholder = "Password"
114
- className = "w-full rounded-lg bg-zinc-100 p-3 font-normal placeholder:text-sm placeholder: text-neutral-500 "
114
+ className = "w-full rounded-lg bg-zinc-100 p-3 font-normal placeholder:text-sm dark:bg-dark-field dark: text-dark-textInField "
115
115
/>
116
116
{ errors . password && (
117
117
< p className = "p-3 text-xs text-red-500" > { `${ errors . password . message } ` } </ p >
@@ -122,7 +122,7 @@ function signup() {
122
122
{ ...register ( 'confirmPassword' ) }
123
123
type = "password"
124
124
placeholder = "Confirm Password"
125
- className = "w-full rounded-lg bg-zinc-100 p-3 font-normal placeholder:text-sm placeholder: text-neutral-500 "
125
+ className = "w-full rounded-lg bg-zinc-100 p-3 font-normal placeholder:text-sm dark:bg-dark-field dark: text-dark-textInField "
126
126
/>
127
127
{ errors . confirmPassword && (
128
128
< p className = "p-3 text-xs text-red-500" > { `${ errors . confirmPassword . message } ` } </ p >
@@ -131,12 +131,12 @@ function signup() {
131
131
< button
132
132
disabled = { isSubmitting }
133
133
type = "submit"
134
- className = "flex w-full items-center justify-center rounded-lg bg-neutral-800 p-3 text-base font-medium text-light disabled:bg-neutral-600 sm:text-lg sm:font-semibold"
134
+ className = "flex w-full items-center justify-center rounded-lg bg-neutral-800 p-3 text-base font-medium text-light disabled:bg-neutral-600 dark:bg-dark-button sm:text-lg sm:font-semibold"
135
135
>
136
136
Sign Up
137
137
</ button >
138
138
</ form >
139
- < div className = "mt-2 flex w-5/6 flex-col items-center justify-center gap-4 text-center text-sm font-normal sm:text-base" >
139
+ < div className = "mt-2 flex w-5/6 flex-col items-center justify-center gap-4 text-center text-sm font-normal dark:text-dark-primary sm:text-base" >
140
140
< p >
141
141
Already have an account?
142
142
< Link to = { '/signin' } className = "text-blue-600 hover:text-blue-500" >
@@ -150,15 +150,15 @@ function signup() {
150
150
151
151
< Link
152
152
to = { '/google-auth' }
153
- className = "flex w-full items-center justify-center space-x-2 rounded-lg border-2 border-b-4 border-gray-300 p-3 text-center hover:bg-gray-50 md:w-3/4 lg:w-2/5"
153
+ className = "flex w-full items-center justify-center space-x-2 rounded-lg border-2 border-b-4 border-gray-300 p-3 text-center hover:bg-gray-50 dark:border-gray-700 dark:text-dark-primary dark:hover:bg-gray-700 md:w-3/4 lg:w-2/5"
154
154
>
155
155
< img className = "h-4 w-6 pl-1 sm:h-5 sm:w-10" src = { AddGoogleIcon } />
156
156
< span className = "text-sm sm:text-base" > Continue with Google</ span >
157
157
</ Link >
158
158
159
159
< Link
160
160
to = { '/github-auth' }
161
- className = "flex w-full items-center justify-center space-x-2 rounded-lg border-2 border-b-4 border-gray-300 p-3 text-center hover:bg-gray-50 md:w-3/4 lg:w-2/5"
161
+ className = "flex w-full items-center justify-center space-x-2 rounded-lg border-2 border-b-4 border-gray-300 p-3 text-center hover:bg-gray-50 dark:border-gray-700 dark:text-dark-primary dark:hover:bg-gray-700 md:w-3/4 lg:w-2/5"
162
162
>
163
163
< img className = "h-4 w-6 sm:h-5 sm:w-10" src = { AddGithubIcon } />
164
164
< span className = "text-sm sm:text-base" > Continue with Github</ span >
0 commit comments