UNPKG

@pagerduty/backstage-plugin

Version:

A Backstage plugin that integrates towards PagerDuty

60 lines (57 loc) 2.03 kB
import React, { useState, useCallback } from 'react'; import { makeStyles, IconButton } from '@material-ui/core'; import { TriggerDialog } from '../TriggerDialog/TriggerDialog.esm.js'; import AddAlert from '@material-ui/icons/AddAlert'; function TriggerIncidentButton({ integrationKey, entityName, compact, handleRefresh }) { const useStyles = makeStyles((theme) => ({ buttonStyle: { color: theme.palette.text.primary, "&:hover": { backgroundColor: "transparent", textDecoration: "underline" } }, containerStyle: { fontSize: compact !== true ? "12px" : "10px", width: compact !== true ? "80px" : "60px", marginRight: "-10px" }, iconStyle: { fontSize: "30px", marginBottom: "-10px" }, textStyle: { marginBottom: "-10px" } })); const { buttonStyle, containerStyle, iconStyle, textStyle } = useStyles(); const [dialogShown, setDialogShown] = useState(false); const showDialog = useCallback(() => { setDialogShown(true); }, [setDialogShown]); const hideDialog = useCallback(() => { setDialogShown(false); }, [setDialogShown]); const disabled = !integrationKey; return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement( IconButton, { "aria-label": "create-incident", onClick: showDialog, className: disabled ? "" : buttonStyle, disabled }, /* @__PURE__ */ React.createElement("div", { className: containerStyle }, /* @__PURE__ */ React.createElement(AddAlert, { className: iconStyle }), /* @__PURE__ */ React.createElement("p", { className: textStyle }, "Create new incident")) ), integrationKey && /* @__PURE__ */ React.createElement( TriggerDialog, { showDialog: dialogShown, handleDialog: hideDialog, integrationKey, serviceName: entityName, onIncidentCreated: handleRefresh } )); } export { TriggerIncidentButton }; //# sourceMappingURL=TriggerIncidentButton.esm.js.map