@pagerduty/backstage-plugin
Version:
A Backstage plugin that integrates towards PagerDuty
60 lines (57 loc) • 2.03 kB
JavaScript
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