parent
0f08e9f1ee
commit
a44eea520a
5 changed files with 14 additions and 6 deletions
|
|
@ -125,7 +125,7 @@ class App extends React.PureComponent<AppProps & Classes, AppState> {
|
|||
const topic = topics[i];
|
||||
const stateTopic = this.topics[topic].state;
|
||||
const typeConversion = stateTopic?.type?.from ?? stateTopic?.type;
|
||||
const val = (typeConversion ?? ((x) => x.toString()))(message);
|
||||
const val = (typeConversion ?? ((x: Buffer) => x.toString()))(message);
|
||||
this.setMqttStateDebounced(
|
||||
{mqttState: Object.assign({},
|
||||
merge(this.state.mqttState, { [topic]: val}))});
|
||||
|
|
@ -152,7 +152,7 @@ class App extends React.PureComponent<AppProps & Classes, AppState> {
|
|||
return;
|
||||
}
|
||||
const rawTopic = commandTopic.name;
|
||||
const typeConversion = commandTopic.type?.to ?? commandTopic.type;
|
||||
const typeConversion = commandTopic?.type?.to ?? commandTopic.type;
|
||||
const value = (typeConversion ?? Buffer.from)(val);
|
||||
this.state.mqttSend(rawTopic, value);
|
||||
} catch (err) {
|
||||
|
|
|
|||
|
|
@ -16,10 +16,12 @@ const BaseComponent = ({Icon, Label}, item, state, changeState) => (
|
|||
<Label />
|
||||
<SliderComponent
|
||||
value={parseFloat(getValue(item, state))}
|
||||
min={item.min || 0} max={item.max || 100}
|
||||
step={item.step || 1}
|
||||
min={item.min ?? 0} max={item.max ?? 100}
|
||||
step={item.step}
|
||||
marks={item.marks ?? false}
|
||||
onChange={changeSliderValue(item, changeState)}
|
||||
disabled={isDisabled(item, state)}
|
||||
valueLabelDisplay="auto"
|
||||
style={{marginLeft: 40}} />
|
||||
</React.Fragment>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -58,9 +58,10 @@ export type UISlider = $ReadOnly<{|
|
|||
topic: string,
|
||||
icon?: Icon,
|
||||
enableCondition?: (s: State) => boolean,
|
||||
marks?: boolean | Array<{ value: number, label: string}>,
|
||||
min?: number,
|
||||
max?: number,
|
||||
step?: number
|
||||
step?: ?number
|
||||
|}>;
|
||||
|
||||
export type UISection = $ReadOnly<{|
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ export const json = (path: string, innerType?: TopicType): TopicType => {
|
|||
from: (msg) => parseAgain(Buffer.from(
|
||||
at(JSON.parse(msg.toString()), path)[0].toString())),
|
||||
to: (msg) => Buffer.from(
|
||||
JSON.serialize(set({}, path, parseFirst(msg).toString())))
|
||||
JSON.stringify(set({}, path, parseFirst(msg).toString())))
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue