import React, { useContext, useState } from "react"; import { useHistory, useParams } from "react-router-dom"; import { Button, Descriptions, Popconfirm, Space, Spin, Typography } from "antd"; import DeleteOutlined from "@ant-design/icons/DeleteOutlined"; import { libLink } from "@clusterio/lib"; import ControlContext from "./ControlContext"; import PageLayout from "./PageLayout"; import InstanceConfigTree from "./InstanceConfigTree"; import InstanceConsole from "./InstanceConsole"; import InstanceRcon from "./InstanceRcon"; import AssignInstanceModal from "./AssignInstanceModal"; import StartStopInstanceButton from "./StartStopInstanceButton"; import LoadScenarioModal from "./LoadScenarioModal"; import SavesList from "./SavesList"; import { notifyErrorHandler } from "../util/notify"; import { useInstance } from "../model/instance"; import { useSlave } from "../model/slave"; const { Title, Paragraph } = Typography; export default function InstanceViewPage(props) { let params = useParams(); let instanceId = Number(params.id); let history = useHistory(); let control = useContext(ControlContext); let [instance] = useInstance(instanceId); let [slave] = useSlave(Number(instance["assigned_slave"])); let [exportingData, setExportingData] = useState(false); let nav = [{ name: "Instances", path: "/instances" }, { name: instance.name || "Unknown" }]; if (instance.loading) { return ; } if (instance.missing) { return

Instance not found

Instance with id {instanceId} was not found on the master server.

; } let instanceButtons = { libLink.messages.deleteInstance.send( control, { instance_id: instanceId } ).then(() => { history.push("/instances"); }).catch(notifyErrorHandler("Error deleting instance")); }} > ; let assigned = instance["assigned_slave"] !== null; return {!assigned ? Unassigned : slave["name"] || instance["assigned_slave"] } {instance["status"]} Console ; }