mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
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:
@@ -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 ----
|
||||||
|
|||||||
Reference in New Issue
Block a user