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