Spaces:
Paused
Paused
| import { toast } from 'sonner'; | |
| import i18n from '@/lib/i18n'; | |
| export function handleServerError(error: unknown) { | |
| let errMsg = i18n.t('common.errors.somethingWentWrong'); | |
| if (error && typeof error === 'object' && 'status' in error && Number(error.status) === 204) { | |
| errMsg = i18n.t('common.errors.contentNotFound'); | |
| } | |
| // Handle fetch API errors (Response objects) or objects with data property | |
| if (error instanceof Response) { | |
| // For Response objects, we can try to parse the body to get the error message | |
| error | |
| .clone() | |
| .json() | |
| .then((data) => { | |
| if (data?.title) { | |
| toast.error(data.title); | |
| } else { | |
| toast.error(errMsg); | |
| } | |
| }) | |
| .catch(() => { | |
| toast.error(errMsg); | |
| }); | |
| return; | |
| } else if (error && typeof error === 'object' && 'data' in error && error.data) { | |
| // For objects with a data property (similar to AxiosError structure) | |
| const data = error.data as { title?: string }; | |
| if (data.title) { | |
| errMsg = data.title; | |
| } | |
| } | |
| toast.error(errMsg); | |
| } | |