diff --git a/ui/src/Components/ManagedSilence/DeleteSilence.js b/ui/src/Components/ManagedSilence/DeleteSilence.js
index 93027530a..85c4b5b07 100644
--- a/ui/src/Components/ManagedSilence/DeleteSilence.js
+++ b/ui/src/Components/ManagedSilence/DeleteSilence.js
@@ -2,7 +2,7 @@ import React, { Component } from "react";
import PropTypes from "prop-types";
import { observable, action } from "mobx";
-import { observer } from "mobx-react";
+import { observer, useObserver, useLocalStore } from "mobx-react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faTrash } from "@fortawesome/free-solid-svg-icons/faTrash";
@@ -241,72 +241,62 @@ const DeleteSilenceModalContent = observer(
}
);
-const DeleteSilence = observer(
- class DeleteSilence extends Component {
- static propTypes = {
- alertStore: PropTypes.instanceOf(AlertStore).isRequired,
- silenceFormStore: PropTypes.instanceOf(SilenceFormStore).isRequired,
- cluster: PropTypes.string.isRequired,
- silence: APISilence.isRequired,
- onModalExit: PropTypes.func,
- };
+const DeleteSilence = ({
+ alertStore,
+ silenceFormStore,
+ cluster,
+ silence,
+ onModalExit,
+}) => {
+ const toggle = useLocalStore(() => ({
+ visible: false,
+ toggle() {
+ this.visible = !this.visible;
+ },
+ }));
- toggle = observable(
- {
- visible: false,
- toggle() {
- this.visible = !this.visible;
- },
- },
- { toggle: action.bound }
- );
+ const members = alertStore.data.getClusterAlertmanagersWithoutReadOnly(
+ cluster
+ );
- render() {
- const {
- alertStore,
- silenceFormStore,
- cluster,
- silence,
- onModalExit,
- } = this.props;
-
- const members = alertStore.data.getClusterAlertmanagersWithoutReadOnly(
- cluster
- );
-
- return (
-
-
-
-
-
-
- );
- }
- }
-);
+ return useObserver(() => (
+
+
+
+
+
+
+ ));
+};
+DeleteSilence.propTypes = {
+ alertStore: PropTypes.instanceOf(AlertStore).isRequired,
+ silenceFormStore: PropTypes.instanceOf(SilenceFormStore).isRequired,
+ cluster: PropTypes.string.isRequired,
+ silence: APISilence.isRequired,
+ onModalExit: PropTypes.func,
+};
export { DeleteSilence, DeleteSilenceModalContent };