fix(rates): fallback на прямой fetch если прокси недоступен

Made-with: Cursor
This commit is contained in:
Denozordec
2026-03-23 23:00:52 +07:00
parent 6bf270d715
commit 0b4507e2d2
+13 -11
View File
@@ -56,18 +56,20 @@ function App() {
if (!settings?.ratesUrl) {
return
}
const proxyUrl = `/api/rates-proxy?url=${encodeURIComponent(settings.ratesUrl)}`
fetch(proxyUrl)
.then((response) => {
if (!response.ok) {
throw new Error('Не удалось получить курсы валют')
}
return response.json()
})
.then((payload) => {
setRatesData(normalizeRatesPayload(payload) ?? payload)
setRatesError('')
const directUrl = settings.ratesUrl
const proxyUrl = `/api/rates-proxy?url=${encodeURIComponent(directUrl)}`
const handlePayload = (payload) => {
setRatesData(normalizeRatesPayload(payload) ?? payload)
setRatesError('')
}
const fetchJson = (url) =>
fetch(url).then((r) => {
if (!r.ok) throw new Error(`HTTP ${r.status}`)
return r.json()
})
fetchJson(proxyUrl)
.then(handlePayload)
.catch(() => fetchJson(directUrl).then(handlePayload))
.catch((error) => {
setRatesError(error.message || 'Ошибка загрузки курсов')
})