From f946fbf7b8baf360977bcf52f750d6ed58a087ba Mon Sep 17 00:00:00 2001 From: counterweight Date: Tue, 23 Dec 2025 15:58:55 +0100 Subject: [PATCH] Use ApiError type for proper error handling --- frontend/app/exchange/page.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/frontend/app/exchange/page.tsx b/frontend/app/exchange/page.tsx index b668c96..082bde4 100644 --- a/frontend/app/exchange/page.tsx +++ b/frontend/app/exchange/page.tsx @@ -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);