@pagerduty/backstage-plugin
Version:
A Backstage plugin that integrates towards PagerDuty
48 lines (45 loc) • 1.49 kB
JavaScript
import React, { useState, useCallback } from 'react';
import { makeStyles, Button } from '@material-ui/core';
import { usePagerdutyEntity } from '../../hooks/index.esm.js';
import { TriggerDialog } from '../TriggerDialog/TriggerDialog.esm.js';
const useStyles = makeStyles((theme) => ({
buttonStyle: {
backgroundColor: theme.palette.error.main,
color: theme.palette.error.contrastText,
"&:hover": {
backgroundColor: theme.palette.error.dark
}
}
}));
function TriggerButton(props) {
const { buttonStyle } = useStyles();
const { integrationKey, name } = usePagerdutyEntity();
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(
Button,
{
onClick: showDialog,
variant: "contained",
className: disabled ? "" : buttonStyle,
disabled
},
integrationKey ? props.children ?? "Create new incident" : "Missing integration key"
), integrationKey && /* @__PURE__ */ React.createElement(
TriggerDialog,
{
showDialog: dialogShown,
handleDialog: hideDialog,
integrationKey,
serviceName: name
}
));
}
export { TriggerButton };
//# sourceMappingURL=index.esm.js.map