/** * Extrae el mensaje de error de una respuesta HTTP fallida. * Lee el JSON del body y devuelve `detail`, `message` o `error` del backend. * Si no hay JSON, devuelve el texto o un fallback genérico con el status. */ export async function extractApiError(response) { const status = response.status; try { const contentType = response.headers.get('content-type') || ''; if (contentType.includes('application/json')) { const body = await response.json(); return body.detail || body.message || body.error || `Error ${status}`; } const text = await response.text(); return text || `Error ${status}`; } catch { return `Error ${status}`; } }