/*
StatusCNC.js - ESP3D WebUI component file
Copyright (c) 2021 Luc LEBOSSE. All rights reserved.
This code is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with This code; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
import { Fragment, TargetedMouseEvent } from "preact"
import type { FunctionalComponent, VNode } from "preact"
import { T } from "../Translations"
import { useUiContextFn } from "../../contexts"
import { useTargetContext, variablesList } from "../../targets"
import { ButtonImg, Button, FullScreenButton, CloseButton, ContainerHelper } from "../Controls"
import { useTargetCommands } from "../../hooks"
import {
Layers,
Unlock,
RefreshCcw,
Moon,
Play,
Pause,
} from "preact-feather"
/*
* Local const
*
*/
type StreamStatus = {
status?: string
name?: string
type?: string
processed?: number
total?: number
code?: number
}
const StatusControls: FunctionalComponent = () => {
const { status, message, alarmCode, errorCode, streamStatus } =
useTargetContext() as unknown as {
status: { state?: string; code?: number }
message?: string
alarmCode: number
errorCode: number
streamStatus: StreamStatus
}
if (!useUiContextFn.getValue("showstatuspanel")) return null
return (
{status.state && (