UNPKG

@fireflyai/backstage-plugin-firefly

Version:
42 lines (39 loc) 1.48 kB
import React, { useState, useEffect } from 'react'; import { Progress, ResponseErrorPanel } from '@backstage/core-components'; import { useEntity, catalogApiRef } from '@backstage/plugin-catalog-react'; import { useApi } from '@backstage/core-plugin-api'; import { IaCCoveragePieChart } from '../IaCCoveragePieChart/IaCCoveragePieChart.esm.js'; const DependenciesIaCCoverageCard = () => { const { entity } = useEntity(); const [loading, setLoading] = useState(true); const [error, setError] = useState(); const [relatedEntities, setRelatedEntities] = useState([]); const catalogApi = useApi(catalogApiRef); useEffect(() => { const fetchData = async () => { try { setLoading(true); const refs = []; entity.relations?.forEach((relation) => { refs.push(relation.targetRef); }); const response = await catalogApi.getEntitiesByRefs({ entityRefs: refs }); setRelatedEntities(response.items); } catch (e) { setError(e); } finally { setLoading(false); } }; fetchData(); }, [entity, catalogApi]); if (loading) { return /* @__PURE__ */ React.createElement(Progress, null); } if (error) { return /* @__PURE__ */ React.createElement(ResponseErrorPanel, { error }); } return /* @__PURE__ */ React.createElement(IaCCoveragePieChart, { relatedEntities }); }; export { DependenciesIaCCoverageCard }; //# sourceMappingURL=DependencyLifecycleCard.esm.js.map