@@ -32,6 +32,7 @@ interface FormValues {
32
32
export const UserMenu = ( { userData } : { userData : LoggedUserData } ) => {
33
33
const [ isEditingUsername , setIsEditingUsername ] = useState ( false ) ;
34
34
const [ name , setName ] = useState ( userData . username ) ;
35
+ const [ error , setError ] = useState ( '' ) ;
35
36
36
37
const {
37
38
handleSubmit,
@@ -42,6 +43,8 @@ export const UserMenu = ({ userData }: { userData: LoggedUserData }) => {
42
43
43
44
const onSubmit : SubmitHandler < FormValues > = async ( data ) => {
44
45
try {
46
+ setError ( '' ) ;
47
+
45
48
if ( data . username === name ) {
46
49
setIsEditingUsername ( false ) ;
47
50
return ;
@@ -81,14 +84,14 @@ export const UserMenu = ({ userData }: { userData: LoggedUserData }) => {
81
84
} ;
82
85
83
86
useEffect ( ( ) => {
84
- if ( errors . username ?. message ) {
85
- toast . error ( errors . username . message ) ;
86
- }
87
+ setError ( errors . username ?. message ?? '' ) ;
87
88
} , [ errors . username ?. message ] ) ;
88
89
89
90
useEffect ( ( ) => {
90
91
if ( isEditingUsername ) {
91
92
reset ( { username : name } ) ;
93
+ } else {
94
+ setError ( '' ) ;
92
95
}
93
96
} , [ isEditingUsername , name , reset ] ) ;
94
97
@@ -184,6 +187,11 @@ export const UserMenu = ({ userData }: { userData: LoggedUserData }) => {
184
187
< p className = 'text-zinc-300 text-xs truncate' > { userData . email } </ p >
185
188
</ div >
186
189
</ div >
190
+ { error && (
191
+ < p className = 'text-xs text-red-400 px-4 pb-2 max-w-60 leading-tight' >
192
+ { error }
193
+ </ p >
194
+ ) }
187
195
188
196
< UserMenuSplitLine />
189
197
0 commit comments