import { Alert, Badge, Card, Group, useComputedColorScheme, } from "@mantine/core"; import { IconAlertTriangle, IconClockPause, IconClockPlay, } from "@tabler/icons-react"; import { FC } from "react"; import { formatDuration } from "./lib/time-format"; import codeboxClasses from "./codebox.module.css"; import badgeClasses from "./badge.module.css"; import { Rule } from "./api/response-types/rules"; import CodeMirror, { EditorView } from "@uiw/react-codemirror"; import { syntaxHighlighting } from "@codemirror/language"; import { baseTheme, darkPromqlHighlighter, lightTheme, promqlHighlighter, } from "./codemirror/theme"; import { PromQLExtension } from "@prometheus-io/codemirror-promql"; const promqlExtension = new PromQLExtension(); const RuleDefinition: FC<{ rule: Rule }> = ({ rule }) => { const theme = useComputedColorScheme(); return ( <> {rule.type === "alerting" && ( {rule.duration && ( } > for: {formatDuration(rule.duration * 1000)} )} {rule.keepFiringFor && ( } > keep_firing_for: {formatDuration(rule.duration * 1000)} )} )} {rule.labels && Object.keys(rule.labels).length > 0 && ( {Object.entries(rule.labels).map(([k, v]) => ( {k}: {v} ))} )} {/* {Object.keys(r.annotations).length > 0 && ( {Object.entries(r.annotations).map(([k, v]) => ( {k}: {v} ))} )} */} ); }; export default RuleDefinition;