UNPKG

@pagerduty/backstage-plugin

Version:

A Backstage plugin that integrates towards PagerDuty

52 lines (49 loc) 1.55 kB
import { jsxs, Fragment, jsx } from 'react/jsx-runtime'; import { 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__ */ jsxs(Fragment, { children: [ /* @__PURE__ */ jsx( Button, { onClick: showDialog, variant: "contained", className: disabled ? "" : buttonStyle, disabled, children: integrationKey ? props.children ?? "Create new incident" : "Missing integration key" } ), integrationKey && /* @__PURE__ */ jsx( TriggerDialog, { showDialog: dialogShown, handleDialog: hideDialog, integrationKey, serviceName: name } ) ] }); } export { TriggerButton }; //# sourceMappingURL=index.esm.js.map