|
@@ -20,6 +20,7 @@ interface OverlayConfig {
|
|
|
showFilename: boolean;
|
|
showFilename: boolean;
|
|
|
showStatus: boolean;
|
|
showStatus: boolean;
|
|
|
showPrinter: boolean;
|
|
showPrinter: boolean;
|
|
|
|
|
+ showModel: boolean;
|
|
|
showNozzle: boolean;
|
|
showNozzle: boolean;
|
|
|
showBed: boolean;
|
|
showBed: boolean;
|
|
|
showChamber: boolean;
|
|
showChamber: boolean;
|
|
@@ -59,6 +60,7 @@ function parseConfig(params: URLSearchParams): OverlayConfig {
|
|
|
showFilename: show.includes('filename'),
|
|
showFilename: show.includes('filename'),
|
|
|
showStatus: show.includes('status'),
|
|
showStatus: show.includes('status'),
|
|
|
showPrinter: show.includes('printer'),
|
|
showPrinter: show.includes('printer'),
|
|
|
|
|
+ showModel: show.includes('model'),
|
|
|
showNozzle: show.includes('nozzle'),
|
|
showNozzle: show.includes('nozzle'),
|
|
|
showBed: show.includes('bed'),
|
|
showBed: show.includes('bed'),
|
|
|
showChamber: show.includes('chamber'),
|
|
showChamber: show.includes('chamber'),
|
|
@@ -209,10 +211,14 @@ export function StreamOverlayPage() {
|
|
|
const printer = useMemo(
|
|
const printer = useMemo(
|
|
|
() =>
|
|
() =>
|
|
|
kiosk
|
|
kiosk
|
|
|
- ? overlay && { name: overlay.name, camera_rotation: overlay.camera_rotation }
|
|
|
|
|
|
|
+ ? overlay && { name: overlay.name, model: overlay.model, camera_rotation: overlay.camera_rotation }
|
|
|
: printerData,
|
|
: printerData,
|
|
|
[kiosk, overlay, printerData],
|
|
[kiosk, overlay, printerData],
|
|
|
);
|
|
);
|
|
|
|
|
+ const printerIdentity = [
|
|
|
|
|
+ config.showPrinter ? printer?.name : null,
|
|
|
|
|
+ config.showModel ? printer?.model : null,
|
|
|
|
|
+ ].filter(Boolean).join(' · ');
|
|
|
const status = kiosk ? overlay : statusData;
|
|
const status = kiosk ? overlay : statusData;
|
|
|
const timeFormat: TimeFormat = (kiosk ? overlay?.time_format : settings?.time_format) || 'system';
|
|
const timeFormat: TimeFormat = (kiosk ? overlay?.time_format : settings?.time_format) || 'system';
|
|
|
|
|
|
|
@@ -404,11 +410,11 @@ export function StreamOverlayPage() {
|
|
|
{/* Status overlay - bottom */}
|
|
{/* Status overlay - bottom */}
|
|
|
<div className="absolute bottom-0 left-0 right-0 z-10 bg-gradient-to-t from-black/80 via-black/60 to-transparent">
|
|
<div className="absolute bottom-0 left-0 right-0 z-10 bg-gradient-to-t from-black/80 via-black/60 to-transparent">
|
|
|
<div className={`${sizes.container}`}>
|
|
<div className={`${sizes.container}`}>
|
|
|
- {/* Printer name */}
|
|
|
|
|
- {config.showPrinter && printer && (
|
|
|
|
|
|
|
+ {/* Printer name and model can each be selected independently. */}
|
|
|
|
|
+ {printerIdentity && (
|
|
|
<div className={`flex items-center ${sizes.gap} mb-2`}>
|
|
<div className={`flex items-center ${sizes.gap} mb-2`}>
|
|
|
- <Printer className={`${sizes.icon} text-white/70`} />
|
|
|
|
|
- <span className={`${sizes.text} text-white font-medium`}>{printer.name}</span>
|
|
|
|
|
|
|
+ <Printer className={`${sizes.icon} shrink-0 text-white/70`} />
|
|
|
|
|
+ <span className={`${sizes.text} min-w-0 truncate text-white font-medium`}>{printerIdentity}</span>
|
|
|
</div>
|
|
</div>
|
|
|
)}
|
|
)}
|
|
|
|
|
|