@@ -20,8 +20,7 @@ import {
2020 EditSongForm ,
2121 editSongFormSchema ,
2222} from '@web/modules/song/components/client/SongForm.zod' ;
23-
24- // TODO: THIS FORM IS CURRENTLY BROKEN, WE NEED TO FIX IT
23+ import { AxiosError } from 'axios' ;
2524
2625export type useEditSongProviderType = {
2726 formMethods : UseFormReturn < EditSongForm > ;
@@ -38,7 +37,7 @@ export type useEditSongProviderType = {
3837} ;
3938
4039export const EditSongContext = createContext < useEditSongProviderType > (
41- null as unknown as useEditSongProviderType ,
40+ { } as useEditSongProviderType ,
4241) ;
4342
4443export const EditSongProvider = ( {
@@ -258,32 +257,35 @@ export const EditSongProvider = ({
258257 setInstrumentSounds ( songInstruments ) ;
259258 formMethods . setValue ( 'customInstruments' , songInstruments ) ;
260259
261- setSong ( song as unknown as SongFileType ) ; // TODO: Investigate this weird type error
262- } catch ( error : any ) {
263- console . error ( 'Error loading song' , error ) ;
264-
260+ setSong ( song ) ;
261+ } catch ( error : unknown ) {
265262 let errorMessage = 'An unknown error occurred while loading the song!' ;
266-
267- if ( error . response ) {
268- // Server responded with an error status
269- errorMessage =
270- error . response . data ?. message ||
271- ( error . response . data ?. error
272- ? Object . values ( error . response . data . error ) [ 0 ]
273- : null ) ||
274- `Failed to load song: ${ error . response . status } ` ;
275- } else if ( error . request ) {
276- // Request was made but no response received (network error)
277- errorMessage =
278- 'Network error: Unable to connect to the server. Please check your internet connection and try again.' ;
263+ if ( error instanceof AxiosError ) {
264+ if ( error . response ) {
265+ // Server responded with an error status
266+ errorMessage =
267+ error . response . data ?. message ||
268+ ( error . response . data ?. error
269+ ? Object . values ( error . response . data . error ) [ 0 ]
270+ : null ) ||
271+ `Failed to load song: ${ error . response . status } ` ;
272+ } else if ( error . request ) {
273+ // Request was made but no response received (network error)
274+ errorMessage =
275+ 'Network error: Unable to connect to the server. Please check your internet connection and try again.' ;
276+ } else {
277+ // Something else happened (including fetch errors)
278+ errorMessage = error . message || errorMessage ;
279+ }
280+
281+ setSendError ( errorMessage ) ;
282+ toaster . error ( errorMessage ) ;
283+ throw error ; // Re-throw to allow caller to handle if needed
279284 } else {
280- // Something else happened (including fetch errors)
281- errorMessage = error . message || errorMessage ;
285+ setSendError ( errorMessage ) ;
286+ toaster . error ( errorMessage ) ;
287+ throw error ;
282288 }
283-
284- setSendError ( errorMessage ) ;
285- toaster . error ( errorMessage ) ;
286- throw error ; // Re-throw to allow caller to handle if needed
287289 }
288290 } ,
289291 [ formMethods , setSong ] ,
0 commit comments