adapting components to new callback function

This commit is contained in:
Mose Müller
2024-03-27 10:08:26 +01:00
parent ff3a509132
commit 15cf0bd414
4 changed files with 61 additions and 36 deletions

View File

@@ -4,6 +4,7 @@ import { DocStringComponent } from './DocStringComponent';
import { Slider } from '@mui/material';
import { NumberComponent, NumberObject } from './NumberComponent';
import { LevelName } from './NotificationsComponent';
import { SerializedValue } from './GenericComponent';
type SliderComponentProps = {
fullAccessPath: string;
@@ -15,12 +16,7 @@ type SliderComponentProps = {
stepSize: NumberObject;
isInstantUpdate: boolean;
addNotification: (message: string, levelname?: LevelName) => void;
changeCallback?: (
value: unknown,
attributeName?: string,
prefix?: string,
callback?: (ack: unknown) => void
) => void;
changeCallback?: (value: SerializedValue, callback?: (ack: unknown) => void) => void;
displayName: string;
id: string;
};
@@ -68,11 +64,25 @@ export const SliderComponent = React.memo((props: SliderComponentProps) => {
if (Array.isArray(newNumber)) {
newNumber = newNumber[0];
}
changeCallback(newNumber, `${name}.value`);
changeCallback({
type: value.type,
value: newNumber,
full_access_path: `${fullAccessPath}.value`,
readonly: value.readonly
});
};
const handleValueChange = (newValue: number, valueType: string) => {
changeCallback(newValue, `${name}.${valueType}`);
const handleValueChange = (
newValue: number,
name: string,
valueObject: NumberObject
) => {
changeCallback({
type: valueObject.type,
value: newValue,
full_access_path: `${fullAccessPath}.${name}`,
readonly: valueObject.readonly
});
};
const deconstructNumberDict = (
@@ -137,7 +147,7 @@ export const SliderComponent = React.memo((props: SliderComponentProps) => {
value={valueMagnitude}
unit={valueUnit}
addNotification={() => {}}
changeCallback={(value) => changeCallback(value, name + '.value')}
changeCallback={changeCallback}
id={id + '-value'}
/>
</Col>
@@ -175,7 +185,7 @@ export const SliderComponent = React.memo((props: SliderComponentProps) => {
type="number"
value={minMagnitude}
disabled={minReadOnly}
onChange={(e) => handleValueChange(Number(e.target.value), 'min')}
onChange={(e) => handleValueChange(Number(e.target.value), 'min', min)}
/>
</Col>
@@ -185,7 +195,7 @@ export const SliderComponent = React.memo((props: SliderComponentProps) => {
type="number"
value={maxMagnitude}
disabled={maxReadOnly}
onChange={(e) => handleValueChange(Number(e.target.value), 'max')}
onChange={(e) => handleValueChange(Number(e.target.value), 'max', max)}
/>
</Col>
@@ -195,7 +205,9 @@ export const SliderComponent = React.memo((props: SliderComponentProps) => {
type="number"
value={stepSizeMagnitude}
disabled={stepSizeReadOnly}
onChange={(e) => handleValueChange(Number(e.target.value), 'step_size')}
onChange={(e) =>
handleValueChange(Number(e.target.value), 'step_size', stepSize)
}
/>
</Col>
</Row>