Skip to content

Commit c797160

Browse files
logic cleanup
1 parent 597cc0a commit c797160

File tree

1 file changed

+24
-7
lines changed

1 file changed

+24
-7
lines changed

arduino-ide-extension/src/browser/dialogs/settings/settings-step-input.tsx

+24-7
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ const SettingsStepInput: React.FC<SettingsStepInputProps> = (
2525
valueRoundedToScale === value ? value + step : valueRoundedToScale;
2626
const newValue = limitValueByCondition(
2727
calculatedValue,
28+
maxValue,
2829
calculatedValue >= maxValue,
29-
() => setStepUpDisabled(true)
30+
disableStepUp
3031
);
3132

3233
setSettingsStateValue(newValue);
@@ -38,22 +39,24 @@ const SettingsStepInput: React.FC<SettingsStepInputProps> = (
3839
valueRoundedToScale === value ? value - step : valueRoundedToScale;
3940
const newValue = limitValueByCondition(
4041
calculatedValue,
42+
minValue,
4143
calculatedValue <= minValue,
42-
() => setStepDownDisabled(true)
44+
disableStepDown
4345
);
4446

4547
setSettingsStateValue(newValue);
4648
};
4749

4850
const limitValueByCondition = (
4951
calculatedValue: number,
52+
limitedValue: number,
5053
condition: boolean,
5154
onConditionTrue: () => void,
5255
onConditionFalse = enableButtons
5356
): number => {
5457
if (condition) {
5558
onConditionTrue();
56-
return minValue;
59+
return limitedValue;
5760
} else {
5861
onConditionFalse();
5962
return calculatedValue;
@@ -65,6 +68,14 @@ const SettingsStepInput: React.FC<SettingsStepInputProps> = (
6568
setStepDownDisabled(false);
6669
};
6770

71+
const disableStepUp = (): void => {
72+
setStepUpDisabled(true);
73+
};
74+
75+
const disableStepDown = (): void => {
76+
setStepDownDisabled(true);
77+
};
78+
6879
const onUserInput = (event: React.ChangeEvent<HTMLInputElement>): void => {
6980
const { value: eventValue } = event.target;
7081

@@ -77,12 +88,18 @@ const SettingsStepInput: React.FC<SettingsStepInputProps> = (
7788
if (!isNaN(number) && number !== value) {
7889
let newValue;
7990
if (number > value) {
80-
newValue = limitValueByCondition(number, number >= maxValue, () =>
81-
setStepUpDisabled(true)
91+
newValue = limitValueByCondition(
92+
number,
93+
maxValue,
94+
number >= maxValue,
95+
disableStepUp
8296
);
8397
} else {
84-
newValue = limitValueByCondition(number, number <= minValue, () =>
85-
setStepDownDisabled(true)
98+
newValue = limitValueByCondition(
99+
number,
100+
minValue,
101+
number <= minValue,
102+
disableStepDown
86103
);
87104
}
88105

0 commit comments

Comments
 (0)