/** * Collar at the top of the page housing import/export, localhost:9090 link, and a link to the process monitor. */ import React from "react"; import LoggerStore from "../stores/LoggerStore"; import LoggerButton from "./LoggerButton"; import { System } from "../../../../common/system"; import LauncherClient from "../../../../clients/launcherClient"; interface IProps { activeView: string; showProcessMonitor: boolean; } interface IState { clientListVisible: boolean; } // high-level affects on central logger. Buttons to invoke ClearData, Export, Import, and Save Settings. export default class TopCollar extends React.PureComponent { constructor(props: IProps) { super(props); this.state = { clientListVisible: LoggerStore.getClientListVisible(), }; this.updateClientListVisible = this.updateClientListVisible.bind(this); } componentDidMount() { LoggerStore.addListener("clientListVisibleChange", this.updateClientListVisible); } componentWillUnmount() { LoggerStore.removeListener("clientListVisibleChange", this.updateClientListVisible); } clearData() { LoggerStore.clearData(); } saveToFile() { LoggerStore.saveToFile(); } fileMode() { LoggerStore.fileMode(); } persist() { LoggerStore.persistState.persist(); } toggleClientList() { LoggerStore.toggleClientListVisible(); } updateClientListVisible() { this.setState({ clientListVisible: LoggerStore.getClientListVisible(), }); } spawnProcessMonitor() { LauncherClient.spawn("Process Monitor", {}); } spawnLocalhost9090() { System.openUrlWithBrowser("http://localhost:9090"); } render() { return (
{this.props.activeView === "logger" && ( {this.state.clientListVisible ? "Hide " : "Show "} Left Panel )} {this.props.showProcessMonitor && ( Process Monitor )} localhost:9090
Export Log Import Log
); } }