Use ApiError type for proper error handling

This commit is contained in:
counterweight 2025-12-23 15:58:55 +01:00
parent 51a67a8140
commit f946fbf7b8
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C

View file

@ -3,7 +3,7 @@
import { useEffect, useState, useCallback, useMemo, ChangeEvent, CSSProperties } from "react";
import { useRouter } from "next/navigation";
import { Permission } from "../auth-context";
import { api } from "../api";
import { api, ApiError } from "../api";
import { Header } from "../components/Header";
import { SatsDisplay } from "../components/SatsDisplay";
import { useRequireAuth } from "../hooks/useRequireAuth";
@ -269,14 +269,16 @@ export default function ExchangePage() {
router.push("/trades");
} catch (err) {
let errorMessage = "Failed to book trade";
if (err instanceof Error) {
// Check if it's an ApiError with detail in data
if ("data" in err && err.data && typeof err.data === "object") {
if (err instanceof ApiError) {
// Extract detail from API error response
if (err.data && typeof err.data === "object") {
const data = err.data as { detail?: string };
errorMessage = data.detail || err.message;
} else {
errorMessage = err.message;
}
} else if (err instanceof Error) {
errorMessage = err.message;
}
setError(errorMessage);