import { AxiosError } from 'axios'; import { AppError } from '../types/errors'; import { showToast } from './toast'; export function handleApiError(error: unknown): never { if (error instanceof AppError) { throw error; } if (error instanceof AxiosError) { const status = error.response?.status; const message = error.response?.data?.message || error.message; const code = error.response?.data?.code; throw new AppError(message, status, code); } if (error instanceof Error) { throw new AppError(error.message); } throw new AppError('Unknown error occurred'); } export function showErrorToast(error: unknown): void { let message = 'An unexpected error occurred'; if (error instanceof AppError) { message = error.message; } else if (error instanceof AxiosError) { message = error.response?.data?.message || error.message; } else if (error instanceof Error) { message = error.message; } showToast.error(message); } export function getErrorMessage(error: unknown): string { if (error instanceof AppError) { return error.message; } if (error instanceof AxiosError) { return error.response?.data?.message || error.message; } if (error instanceof Error) { return error.message; } return 'An unexpected error occurred'; }