diff --git a/ui/src/Components/OverviewModal/OverviewModalContent.js b/ui/src/Components/OverviewModal/OverviewModalContent.js index 95562c6c7..347dff4de 100644 --- a/ui/src/Components/OverviewModal/OverviewModalContent.js +++ b/ui/src/Components/OverviewModal/OverviewModalContent.js @@ -1,8 +1,7 @@ -import React, { Component } from "react"; +import React from "react"; import PropTypes from "prop-types"; -import { observer } from "mobx-react"; -import { observable, action } from "mobx"; +import { observer, useLocalStore } from "mobx-react"; import { AlertStore } from "Stores/AlertStore"; import { TooltipWrapper } from "Components/TooltipWrapper"; @@ -100,51 +99,38 @@ const NothingToShow = () => ( ); -const OverviewModalContent = observer( - class OverviewModalContent extends Component { - static propTypes = { - alertStore: PropTypes.instanceOf(AlertStore).isRequired, - onHide: PropTypes.func.isRequired, - }; - - allLabels = observable( - { - show: false, - toggle() { - this.show = !this.show; - }, - }, - { - toggle: action.bound, - } - ); - - render() { - const { alertStore, onHide } = this.props; - - return ( - -
-
Overview
- -
-
- {alertStore.data.counters.length === 0 ? ( - - ) : ( - - )} -
-
- ); - } - } -); +const OverviewModalContent = observer(({ alertStore, onHide }) => { + const allLabels = useLocalStore(() => ({ + show: false, + toggle() { + this.show = !this.show; + }, + })); + return ( + +
+
Overview
+ +
+
+ {alertStore.data.counters.length === 0 ? ( + + ) : ( + + )} +
+
+ ); +}); +OverviewModalContent.propTypes = { + alertStore: PropTypes.instanceOf(AlertStore).isRequired, + onHide: PropTypes.func.isRequired, +}; export { OverviewModalContent }; diff --git a/ui/src/Components/OverviewModal/index.test.js b/ui/src/Components/OverviewModal/index.test.js index 191fa95c8..14c3228ca 100644 --- a/ui/src/Components/OverviewModal/index.test.js +++ b/ui/src/Components/OverviewModal/index.test.js @@ -38,7 +38,7 @@ describe("", () => { const tree = MountedOverviewModal(); const toggle = tree.find("div.navbar-brand"); toggle.simulate("click"); - expect(tree.find("OverviewModalContent")).toHaveLength(1); + expect(tree.find(".modal-title").text()).toBe("Overview"); expect(tree.find(".modal-content").find("svg.fa-spinner")).toHaveLength(0); }); @@ -49,12 +49,12 @@ describe("", () => { toggle.simulate("click"); jest.runOnlyPendingTimers(); tree.update(); - expect(tree.find("OverviewModalContent")).toHaveLength(1); + expect(tree.find(".modal-title").text()).toBe("Overview"); toggle.simulate("click"); jest.runOnlyPendingTimers(); tree.update(); - expect(tree.find("OverviewModalContent")).toHaveLength(0); + expect(tree.find(".modal-title")).toHaveLength(0); }); it("hides the modal when hide() is called", () => { @@ -62,7 +62,7 @@ describe("", () => { const toggle = tree.find("div.navbar-brand"); toggle.simulate("click"); - expect(tree.find("OverviewModalContent")).toHaveLength(1); + expect(tree.find(".modal-title").text()).toBe("Overview"); const instance = tree.instance(); instance.toggle.hide();