import React, { useEffect } from "react"; import { useSelector, useDispatch } from "react-redux"; import { createDevTools } from "redux-devtools"; //import { nicinabox } from "redux-devtools-themes"; //import ChartMonitor from "redux-devtools-chart-monitor"; import LogMonitor from "redux-devtools-log-monitor"; import { InteropStore } from "./types"; import ConfigClient from "../../clients/configClient"; import root from "./modules/root"; import { System } from "../../common/system"; // Uncomment this code and the associated imports to enable the ChartMonitor /* const theme = nicinabox; const chartMonitorStyle = { width: "100%", height: "100%", // i.e fullscreen for DockMonitor text: { colors: { default: theme.base0D, hover: theme.base06, }, }, node: { colors: { default: theme.base0B, collapsed: theme.base0B, parent: theme.base0E, }, radius: 5, }, }; const DevTools = createDevTools( ); */ export const logMonitor = ; const DevTools = createDevTools(logMonitor); const DevToolsContainer = () => { const dispatch = useDispatch(); const isVisible = useSelector((store: InteropStore) => store.root.isVisible); const makeVisible = () => { // Make certain visibility only runs once System.Window.getCurrent().removeEventListener("shown", makeVisible); window.removeEventListener("focus", makeVisible); if (!isVisible) dispatch(root.actions.windowVisible(true)); }; useEffect(() => { ConfigClient.getValue( { field: "finsemble.services.interopService.visible" }, (err: any, isVisibleValue?: boolean) => { dispatch(root.actions.windowVisible(!!isVisibleValue)); } ); System.Window.getCurrent().addEventListener("shown", makeVisible); window.addEventListener("focus", makeVisible); }, []); return <>{isVisible && }; }; export { DevToolsContainer }; export default DevTools;