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
+11 -9
View File
@@ -56,18 +56,20 @@ function App() {
if (!settings?.ratesUrl) { if (!settings?.ratesUrl) {
return return
} }
const proxyUrl = `/api/rates-proxy?url=${encodeURIComponent(settings.ratesUrl)}` const directUrl = settings.ratesUrl
fetch(proxyUrl) const proxyUrl = `/api/rates-proxy?url=${encodeURIComponent(directUrl)}`
.then((response) => { const handlePayload = (payload) => {
if (!response.ok) {
throw new Error('Не удалось получить курсы валют')
}
return response.json()
})
.then((payload) => {
setRatesData(normalizeRatesPayload(payload) ?? payload) setRatesData(normalizeRatesPayload(payload) ?? payload)
setRatesError('') 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) => { .catch((error) => {
setRatesError(error.message || 'Ошибка загрузки курсов') setRatesError(error.message || 'Ошибка загрузки курсов')
}) })