fix: load filters independently — one API failure no longer blocks others

Promise.all was used for tariffs, promo groups, campaigns, and partners.
If any one endpoint failed (e.g., partners not configured), all four
setCampaigns/setPartners/etc calls were skipped. Now each loads independently.
This commit is contained in:
Fringg
2026-04-24 16:22:20 +03:00
parent 161f630fd8
commit 8e767443f0

View File

@@ -1563,25 +1563,24 @@ export default function AdminBulkActions() {
loadUsers(); loadUsers();
}, [loadUsers]); }, [loadUsers]);
// Load tariffs, promo groups, campaigns, and partners once // Load tariffs, promo groups, campaigns, and partners once (independent — one failure won't block others)
useEffect(() => { useEffect(() => {
const load = async () => { tariffsApi
try { .getTariffs(true)
const [tariffData, pgData, campaignData, partnerData] = await Promise.all([ .then((d) => setTariffs(d.tariffs))
tariffsApi.getTariffs(true), .catch(() => {});
promocodesApi.getPromoGroups({ limit: 200 }), promocodesApi
campaignsApi.getCampaigns(true, 0, 200), .getPromoGroups({ limit: 200 })
partnerApi.getPartners({ limit: 200 }), .then((d) => setPromoGroups(d.items))
]); .catch(() => {});
setTariffs(tariffData.tariffs); campaignsApi
setPromoGroups(pgData.items); .getCampaigns(true, 0, 200)
setCampaigns(campaignData.campaigns); .then((d) => setCampaigns(d.campaigns))
setPartners(partnerData.items); .catch(() => {});
} catch { partnerApi
// silently fail .getPartners({ limit: 200 })
} .then((d) => setPartners(d.items))
}; .catch(() => {});
load();
}, []); }, []);
// ---- Handlers ---- // ---- Handlers ----