UNPKG

@grafana/alerting

Version:

Grafana Alerting Library – Build vertical integrations on top of the industry-leading alerting solution

49 lines (44 loc) 1.95 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var jsxRuntime = require('react/jsx-runtime'); var lodash = require('lodash'); var ui = require('@grafana/ui'); var useContactPoints = require('../../hooks/v0alpha1/useContactPoints.cjs'); var utils = require('../../utils.cjs'); "use strict"; const collator = new Intl.Collator("en", { sensitivity: "accent" }); function ContactPointSelector(props) { const { includeUnusable = false, ...comboboxProps } = props; const { currentData: contactPoints, isLoading } = useContactPoints.useListContactPoints( {}, { refetchOnFocus: true, refetchOnMountOrArgChange: true } ); const contactPointOptions = lodash.chain(contactPoints == null ? void 0 : contactPoints.items).toArray().filter((contactPoint) => includeUnusable || utils.isUsableContactPoint(contactPoint)).map((contactPoint) => { var _a; return { option: { label: contactPoint.spec.title, value: (_a = contactPoint.metadata.uid) != null ? _a : contactPoint.spec.title, description: utils.getContactPointDescription(contactPoint) }, contactPoint }; }).value().sort((a, b) => collator.compare(a.option.label, b.option.label)); const options = contactPointOptions.map((item) => item.option); const handleChange = (selectedOption) => { if (selectedOption == null && comboboxProps.isClearable) { comboboxProps.onChange(null); return; } if (selectedOption) { const matchedOption = contactPointOptions.find(({ option }) => option.value === selectedOption.value); if (!matchedOption) { return; } comboboxProps.onChange(matchedOption.contactPoint); } }; return /* @__PURE__ */ jsxRuntime.jsx(ui.Combobox, { ...comboboxProps, loading: isLoading, options, onChange: handleChange }); } exports.ContactPointSelector = ContactPointSelector; //# sourceMappingURL=ContactPointSelector.cjs.map