diff --git a/apps/web/pages/index.vue b/apps/web/pages/index.vue index abc297a..6395f30 100644 --- a/apps/web/pages/index.vue +++ b/apps/web/pages/index.vue @@ -1,5 +1,5 @@ + + + + + + Pause + + + Resume + + + + + Stop print… + + + + + + + Cancel {{ printer.currentJobName ?? "the running print" }}? The print ends and cannot be resumed. + + + Yes, cancel the print + + Keep printing + + + + + Fan + + % + + Set fan + + + + {{ notice.text }} + + + + + diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index 73adc55..0ab3fab 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts @@ -1,4 +1,5 @@ export { default as PrinterCard } from "./components/PrinterCard.vue"; +export { default as PrinterControls } from "./components/PrinterControls.vue"; export { default as TemperatureGraph } from "./components/TemperatureGraph.vue"; export { default as WebRTCStreamView } from "./components/WebRTCStreamView.vue"; -export type { AppPrinterState, AppTelemetryMessage } from "./types"; +export type { AppPrinterState, AppTelemetryMessage, PrinterCommand } from "./types"; diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts index d77edeb..c0a33fe 100644 --- a/packages/ui/src/types.ts +++ b/packages/ui/src/types.ts @@ -48,3 +48,13 @@ export interface AppPrinterState { export type AppTelemetryMessage = | { type: "ready"; visiblePrinters: number } | { type: "printer.telemetry"; printer: AppPrinterState }; + +/** + * What `POST /printers/:id/commands` accepts: the edge schema's + * `printer_command.schema.json`, minus `start_print` (a job's dispatch sends + * that, never a person) and `send_gcode_line` (arbitrary g-code is not + * offered to a button). Hand-mirrored like the rest of this file. + */ +export type PrinterCommand = + | { action: "control_print"; control: "pause" | "resume" | "stop" } + | { action: "set_fan_speed"; percent: number };
+ Cancel {{ printer.currentJobName ?? "the running print" }}? The print ends and cannot be resumed. +
+ {{ notice.text }} +