From d0fd59f83941ee30e55c90d78188e838b7fc08a1 Mon Sep 17 00:00:00 2001 From: thisconnect Date: Tue, 5 May 2026 08:40:17 +0200 Subject: [PATCH] frontend: re-fetch btcdirectinfo in case account is not synced Fixed BTCDirect loading forever if the account is not fully synced. --- frontends/web/src/routes/market/btcdirect.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/frontends/web/src/routes/market/btcdirect.tsx b/frontends/web/src/routes/market/btcdirect.tsx index 84e51b2141..0b0a4b9c06 100644 --- a/frontends/web/src/routes/market/btcdirect.tsx +++ b/frontends/web/src/routes/market/btcdirect.tsx @@ -3,7 +3,8 @@ import { useState, useEffect, useContext, useCallback } from 'react'; import { useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; -import { getBTCDirectInfo, TMarketAction } from '@/api/market'; +import { getBTCDirectInfo, TBTCDirectInfoResponse, TMarketAction } from '@/api/market'; +import { syncdone } from '@/api/accountsync'; import { parseExternalBtcAmount } from '@/api/coins'; import { AppContext } from '@/contexts/AppContext'; import { AccountCode, TAccount, proposeTx, sendTx, TTxInput } from '@/api/account'; @@ -48,7 +49,15 @@ export const BTCDirect = ({ const { isDarkMode } = useDarkmode(); const navigate = useNavigate(); - const btcdirectInfo = useLoad(() => getBTCDirectInfo(action, code)); + const [btcdirectInfo, setBtcdirectInfo] = useState(); + const fetchBTCDirectInfo = useCallback(async () => { + setBtcdirectInfo(await getBTCDirectInfo(action, code)); + }, [action, code]); + // re-fetch btcdirectInfo in case account is not fully synced + useEffect(() => { + fetchBTCDirectInfo(); + return syncdone(code, fetchBTCDirectInfo); + }, [code, fetchBTCDirectInfo]); const [blocking, setBlocking] = useState(false);