@@ -91,15 +91,27 @@ const clearError = () => {
9191 successMessage .value = ' '
9292}
9393
94+ interface RegisterError {
95+ name? : string ;
96+ message? : string ;
97+ status? : number ;
98+ }
99+
100+ interface PotentialError {
101+ name? : unknown ;
102+ message? : unknown ;
103+ status? : unknown ;
104+ }
105+
94106// Handle different types of errors
95- const handleError = (error : any ) => {
96- if (error .name === ' TypeError' && error .message .includes (' fetch' )) {
107+ const handleError = (error : RegisterError ) => {
108+ if (error .name === ' TypeError' && error .message && error . message .includes (' fetch' )) {
97109 // Network error - backend is down
98110 errorMessage .value = ' Unable to connect to server. Please try again later.'
99- } else if (error .status === 409 ) {
111+ } else if (error .status && error . status === 409 ) {
100112 // Conflict - username or email already exists
101113 errorMessage .value = error .message || ' Username or email already exists.'
102- } else if (error .status >= 500 ) {
114+ } else if (error .status && error . status >= 500 ) {
103115 // Server error
104116 errorMessage .value = ' Server error occurred. Please try again later.'
105117 } else if (error .name === ' AbortError' ) {
@@ -157,9 +169,32 @@ const onSubmit = form.handleSubmit(async (values) => {
157169 router .push (' /login' )
158170 }, 2000 )
159171
160- } catch (error ) {
161- console .error (' Registration error:' , error )
162- handleError (error )
172+ } catch (e ) {
173+ console .error (' Registration error:' , e );
174+ const errorToHandle: RegisterError = { message: t (' register.errors.unknownError' , ' An unexpected error occurred during registration.' ) }; // Default message
175+ const potentialError = e as PotentialError ;
176+
177+ if (typeof potentialError .name === ' string' ) {
178+ errorToHandle .name = potentialError .name ;
179+ }
180+ if (typeof potentialError .message === ' string' ) {
181+ errorToHandle .message = potentialError .message ;
182+ }
183+ if (typeof potentialError .status === ' number' ) {
184+ errorToHandle .status = potentialError .status ;
185+ }
186+
187+ // If it's a standard Error instance, prefer its properties
188+ if (e instanceof Error ) {
189+ errorToHandle .name = e .name ;
190+ errorToHandle .message = e .message ;
191+ }
192+
193+ // Ensure message is always set if not already by previous checks
194+ if (! errorToHandle .message ) {
195+ errorToHandle .message = t (' register.errors.unknownError' , ' An unexpected error occurred during registration.' );
196+ }
197+ handleError (errorToHandle );
163198 } finally {
164199 isLoading .value = false
165200 }
0 commit comments