docs(frontend): note N+1 gateway skills fetch

This commit is contained in:
Abhimanyu Saharan
2026-02-13 22:29:57 +00:00
parent 86b5306f9d
commit cb3aff5bb0

View File

@@ -137,22 +137,26 @@ export default function SkillsMarketplacePage() {
}); });
}, [selectedPack, skills]); }, [selectedPack, skills]);
const loadSkillsByGateway = useCallback( const loadSkillsByGateway = useCallback(async () => {
async () => // NOTE: This is technically N+1 (one request per gateway). We intentionally
Promise.all( // parallelize requests to keep the UI responsive and avoid slow sequential
gateways.map(async (gateway) => { // fetches. If this becomes a bottleneck for large gateway counts, add a
const response = await listMarketplaceSkillsApiV1SkillsMarketplaceGet({ // backend batch endpoint to return installation state across all gateways.
gateway_id: gateway.id, const gatewaySkills = await Promise.all(
}); gateways.map(async (gateway) => {
return { const response = await listMarketplaceSkillsApiV1SkillsMarketplaceGet({
gatewayId: gateway.id, gateway_id: gateway.id,
gatewayName: gateway.name, });
skills: response.status === 200 ? response.data : [], return {
}; gatewayId: gateway.id,
}), gatewayName: gateway.name,
), skills: response.status === 200 ? response.data : [],
[gateways], };
); }),
);
return gatewaySkills;
}, [gateways]);
const updateInstalledGatewayNames = useCallback( const updateInstalledGatewayNames = useCallback(
({ ({