UNPKG

@pagerduty/backstage-plugin

Version:

A Backstage plugin that integrates towards PagerDuty

46 lines (43 loc) 1.79 kB
import React, { 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__ */ React.createElement(ChangeEventForbiddenState, null); } return /* @__PURE__ */ React.createElement(Alert, { severity: "error" }, "Error encountered while fetching information. ", error.message); } if (loading) { return /* @__PURE__ */ React.createElement(Progress, null); } if (!changeEvents?.length) { return /* @__PURE__ */ React.createElement(ChangeEventEmptyState, null); } return /* @__PURE__ */ React.createElement(List, { dense: true }, changeEvents.map((changeEvent, index) => /* @__PURE__ */ React.createElement( ChangeEventListItem, { key: changeEvent.id + index, changeEvent } ))); }; export { ChangeEvents }; //# sourceMappingURL=ChangeEvents.esm.js.map