UNPKG

@pagerduty/backstage-plugin

Version:

A Backstage plugin that integrates towards PagerDuty

53 lines (50 loc) 1.79 kB
import { jsx, jsxs } from 'react/jsx-runtime'; import { useEffect } from 'react'; import { List } from '@material-ui/core'; import { ChangeEventListItem } from './ChangeEventListItem.esm.js'; import { ChangeEventEmptyState } from './ChangeEventEmptyState.esm.js'; import { ChangeEventForbiddenState } from './ChangeEventForbiddenState.esm.js'; import useAsyncFn from 'react-use/lib/useAsyncFn'; import { pagerDutyApiRef } from '../../api/client.esm.js'; import { useApi } from '@backstage/core-plugin-api'; import { Progress } from '@backstage/core-components'; import { Alert } from '@material-ui/lab'; const ChangeEvents = ({ serviceId, account, refreshEvents }) => { const api = useApi(pagerDutyApiRef); const [{ value: changeEvents, loading, error }, getChangeEvents] = useAsyncFn( async () => { const { change_events } = await api.getChangeEventsByServiceId( serviceId, account ); return change_events; } ); useEffect(() => { getChangeEvents(); }, [refreshEvents, getChangeEvents]); if (error) { if (error.message.includes("Forbidden")) { return /* @__PURE__ */ jsx(ChangeEventForbiddenState, {}); } return /* @__PURE__ */ jsxs(Alert, { severity: "error", children: [ "Error encountered while fetching information. ", error.message ] }); } if (loading) { return /* @__PURE__ */ jsx(Progress, {}); } if (!changeEvents?.length) { return /* @__PURE__ */ jsx(ChangeEventEmptyState, {}); } return /* @__PURE__ */ jsx(List, { dense: true, children: changeEvents.map((changeEvent, index) => /* @__PURE__ */ jsx( ChangeEventListItem, { changeEvent }, changeEvent.id + index )) }); }; export { ChangeEvents }; //# sourceMappingURL=ChangeEvents.esm.js.map