Enhance PrinterTemperaturePanel component by adding sendObjectAction for temperature setting; refactor handleSetTemperature to support async operations and improve event handling for temperature input changes.

This commit is contained in:
Tom Butcher 2025-09-05 23:21:14 +01:00
parent d07e2be330
commit 800e0d82a2

View File

@ -53,7 +53,8 @@ const PrinterTemperaturePanel = ({
ambiant: 0 ambiant: 0
}) })
const { subscribeToObjectEvent, connected } = useContext(ApiServerContext) const { subscribeToObjectEvent, connected, sendObjectAction } =
useContext(ApiServerContext)
// Sync input values with actual temperature targets // Sync input values with actual temperature targets
useEffect(() => { useEffect(() => {
@ -90,10 +91,19 @@ const PrinterTemperaturePanel = ({
const [extruderTarget, setExtruderTarget] = useState(0) const [extruderTarget, setExtruderTarget] = useState(0)
const [bedTarget, setBedTarget] = useState(0) const [bedTarget, setBedTarget] = useState(0)
const handleSetTemperature = (data) => { const handleSetTemperature = async (data) => {
if (id && connected == true) { if (id && connected == true) {
console.log(data) await sendObjectAction(
//sendObjectAction(id, 'printer', { type: 'setTemperature', data }) id,
'printer',
{
type: 'setTemperature',
data
},
(result) => {
console.log('setTemperatureResult', result)
}
)
} }
} }
@ -169,16 +179,20 @@ const PrinterTemperaturePanel = ({
style={{ width: '120px' }} style={{ width: '120px' }}
addonAfter='°C' addonAfter='°C'
onChange={(value) => setExtruderTarget(value || 0)} onChange={(value) => setExtruderTarget(value || 0)}
onPressEnter={handleSetTemperature({ onPressEnter={() =>
handleSetTemperature({
extruder: { target: extruderTarget } extruder: { target: extruderTarget }
})} })
}
/> />
<Button <Button
type='default' type='default'
style={{ width: 40 }} style={{ width: 40 }}
onClick={handleSetTemperature({ onClick={() =>
handleSetTemperature({
extruder: { target: extruderTarget } extruder: { target: extruderTarget }
})} })
}
> >
Set Set
</Button> </Button>
@ -226,16 +240,20 @@ const PrinterTemperaturePanel = ({
style={{ width: '120px' }} style={{ width: '120px' }}
addonAfter='°C' addonAfter='°C'
onChange={(value) => setBedTarget(value || 0)} onChange={(value) => setBedTarget(value || 0)}
onPressEnter={handleSetTemperature({ onPressEnter={() =>
handleSetTemperature({
bed: { target: bedTarget } bed: { target: bedTarget }
})} })
}
/> />
<Button <Button
type='default' type='default'
style={{ width: 40 }} style={{ width: 40 }}
onClick={handleSetTemperature({ onClick={() =>
handleSetTemperature({
bed: { target: bedTarget } bed: { target: bedTarget }
})} })
}
> >
Set Set
</Button> </Button>