mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-04-20 00:10:03 +02:00
moves functions from component to the outside (to not cause re-rendering)
This commit is contained in:
parent
34eb4a0e7c
commit
c42872aad4
@ -48,6 +48,13 @@ const createDisplayNameFromAccessPath = (fullAccessPath: string): string => {
|
|||||||
return getPathFromPathParts(displayNameParts);
|
return getPathFromPathParts(displayNameParts);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function changeCallback(
|
||||||
|
value: SerializedObject,
|
||||||
|
callback: (ack: unknown) => void = () => {},
|
||||||
|
) {
|
||||||
|
updateValue(value, callback);
|
||||||
|
}
|
||||||
|
|
||||||
export const GenericComponent = React.memo(
|
export const GenericComponent = React.memo(
|
||||||
({ attribute, isInstantUpdate, addNotification }: GenericComponentProps) => {
|
({ attribute, isInstantUpdate, addNotification }: GenericComponentProps) => {
|
||||||
const { full_access_path: fullAccessPath } = attribute;
|
const { full_access_path: fullAccessPath } = attribute;
|
||||||
@ -65,13 +72,6 @@ export const GenericComponent = React.memo(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeCallback(
|
|
||||||
value: SerializedObject,
|
|
||||||
callback: (ack: unknown) => void = () => {},
|
|
||||||
) {
|
|
||||||
updateValue(value, callback);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (attribute.type === "bool") {
|
if (attribute.type === "bool") {
|
||||||
return (
|
return (
|
||||||
<ButtonComponent
|
<ButtonComponent
|
||||||
|
@ -24,6 +24,23 @@ interface SliderComponentProps {
|
|||||||
id: string;
|
id: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const deconstructNumberDict = (
|
||||||
|
numberDict: NumberObject,
|
||||||
|
): [number, boolean, string | undefined] => {
|
||||||
|
let numberMagnitude = 0;
|
||||||
|
let numberUnit: string | undefined = undefined;
|
||||||
|
const numberReadOnly = numberDict.readonly;
|
||||||
|
|
||||||
|
if (numberDict.type === "int" || numberDict.type === "float") {
|
||||||
|
numberMagnitude = numberDict.value;
|
||||||
|
} else if (numberDict.type === "Quantity") {
|
||||||
|
numberMagnitude = numberDict.value.magnitude;
|
||||||
|
numberUnit = numberDict.value.unit;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [numberMagnitude, numberReadOnly, numberUnit];
|
||||||
|
};
|
||||||
|
|
||||||
export const SliderComponent = React.memo((props: SliderComponentProps) => {
|
export const SliderComponent = React.memo((props: SliderComponentProps) => {
|
||||||
const renderCount = useRenderCount();
|
const renderCount = useRenderCount();
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
@ -117,23 +134,6 @@ export const SliderComponent = React.memo((props: SliderComponentProps) => {
|
|||||||
changeCallback(serializedObject);
|
changeCallback(serializedObject);
|
||||||
};
|
};
|
||||||
|
|
||||||
const deconstructNumberDict = (
|
|
||||||
numberDict: NumberObject,
|
|
||||||
): [number, boolean, string | undefined] => {
|
|
||||||
let numberMagnitude = 0;
|
|
||||||
let numberUnit: string | undefined = undefined;
|
|
||||||
const numberReadOnly = numberDict.readonly;
|
|
||||||
|
|
||||||
if (numberDict.type === "int" || numberDict.type === "float") {
|
|
||||||
numberMagnitude = numberDict.value;
|
|
||||||
} else if (numberDict.type === "Quantity") {
|
|
||||||
numberMagnitude = numberDict.value.magnitude;
|
|
||||||
numberUnit = numberDict.value.unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
return [numberMagnitude, numberReadOnly, numberUnit];
|
|
||||||
};
|
|
||||||
|
|
||||||
const [valueMagnitude, valueReadOnly, valueUnit] = deconstructNumberDict(value);
|
const [valueMagnitude, valueReadOnly, valueUnit] = deconstructNumberDict(value);
|
||||||
const [minMagnitude, minReadOnly] = deconstructNumberDict(min);
|
const [minMagnitude, minReadOnly] = deconstructNumberDict(min);
|
||||||
const [maxMagnitude, maxReadOnly] = deconstructNumberDict(max);
|
const [maxMagnitude, maxReadOnly] = deconstructNumberDict(max);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user