@fireflyai/backstage-plugin-firefly
Version:
Firefly plugin for Backstage
42 lines (39 loc) • 1.48 kB
JavaScript
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