Skip to content

Commit ecc45e2

Browse files
authored
Merge pull request #1265 from dxc-technology/jcheng-fix-slider-accept-zero
[Patch] fix Slider to accept zero
2 parents a5ffcf0 + d59d378 commit ecc45e2

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

lib/src/slider/Slider.test.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React from "react";
22
import { render, fireEvent, act } from "@testing-library/react";
3+
import userEvent from "@testing-library/user-event";
34
import DxcSlider from "./Slider";
45

56
describe("Slider component tests", () => {
@@ -81,4 +82,15 @@ describe("Slider component tests", () => {
8182
expect(getByText("100$")).toBeTruthy();
8283
expect(labelFormatCallback).toHaveBeenCalledTimes(2);
8384
});
85+
test("Change value correctly to 0 from external function", () => {
86+
const onChange = jest.fn();
87+
const { rerender, getByRole } = render(
88+
<DxcSlider minValue={0} maxValue={100} onChange={onChange} showLimitsValues value={13} showInput />
89+
);
90+
const slider = getByRole("slider");
91+
userEvent.tab();
92+
fireEvent.keyDown(slider, { key: "ArrowRight", code: "ArrowRight", keyCode: 39, charCode: 39 });
93+
rerender(<DxcSlider minValue={0} maxValue={100} onChange={onChange} showLimitsValues value={0} showInput />);
94+
expect(slider.getAttribute("aria-valuenow")).toBe("0");
95+
});
8496
});

lib/src/slider/Slider.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ const DxcSlider = ({
4545
);
4646

4747
const handlerSliderChange = (event, newValue) => {
48-
const valueToCheck = value ?? innerValue;
48+
const valueToCheck = value != null && value >= 0 ? value : innerValue;
4949
valueToCheck !== newValue && setInnerValue(newValue);
5050
onChange?.(newValue);
5151
};
@@ -80,7 +80,7 @@ const DxcSlider = ({
8080
</MinLabelContainer>
8181
)}
8282
<Slider
83-
value={(value != null && value >= 0 && value) || innerValue}
83+
value={value != null && value >= 0 ? value : innerValue}
8484
min={minValue}
8585
max={maxValue}
8686
onChange={handlerSliderChange}
@@ -99,7 +99,7 @@ const DxcSlider = ({
9999
<StyledTextInput>
100100
<DxcTextInput
101101
name={name}
102-
value={(value != null && value >= 0 && value.toString()) || innerValue.toString()}
102+
value={value != null && value >= 0 ? value.toString() : innerValue.toString()}
103103
disabled={disabled}
104104
onChange={handlerInputChange}
105105
size="fillParent"

0 commit comments

Comments
 (0)