From 28572102cf3da94e7f09887daf5d135636f9a922 Mon Sep 17 00:00:00 2001 From: Tom Ratcliffe Date: Thu, 28 Mar 2024 15:19:46 +0000 Subject: [PATCH] Use `produce` for pause payload generation and return early --- .../unified/components/MenuItemPauseRule.tsx | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/public/app/features/alerting/unified/components/MenuItemPauseRule.tsx b/public/app/features/alerting/unified/components/MenuItemPauseRule.tsx index a1d83103768..ff0130bd9a0 100644 --- a/public/app/features/alerting/unified/components/MenuItemPauseRule.tsx +++ b/public/app/features/alerting/unified/components/MenuItemPauseRule.tsx @@ -1,3 +1,4 @@ +import { produce } from 'immer'; import React from 'react'; import { Menu } from '@grafana/ui'; @@ -37,17 +38,13 @@ const MenuItemPauseRule = ({ rule, onPauseChange }: Props) => { // Parse the rules into correct format for API const modifiedRules = group.rules.map((groupRule) => { - if (isGrafanaRulerRule(groupRule.rulerRule) && groupRule.rulerRule.grafana_alert.uid === ruleUid) { - return { - ...groupRule.rulerRule, - grafana_alert: { - ...groupRule.rulerRule.grafana_alert, - is_paused: newIsPaused, - }, - }; + if (!(isGrafanaRulerRule(groupRule.rulerRule) && groupRule.rulerRule.grafana_alert.uid === ruleUid)) { + return groupRule.rulerRule!; } - return groupRule.rulerRule!; + return produce(groupRule.rulerRule, (updatedGroupRule) => { + updatedGroupRule.grafana_alert.is_paused = newIsPaused; + }); }); const payload = {