Skip to content

Commit 71746b2

Browse files
Brian Stonestonebk
authored andcommitted
fix: onAfterChange was not being fired
Fixes #3
1 parent 20afb9e commit 71746b2

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

src/components/ReactSlider/ReactSlider.jsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,17 @@ function trimPreceding(length, nextValue, minDistance, min) {
5454

5555
function addHandlers(eventMap) {
5656
Object.keys(eventMap).forEach(key => {
57-
document.addEventListener(key, eventMap[key], false);
57+
if (typeof document !== 'undefined') {
58+
document.addEventListener(key, eventMap[key], false);
59+
}
5860
});
5961
}
6062

6163
function removeHandlers(eventMap) {
6264
Object.keys(eventMap).forEach(key => {
63-
document.removeEventListener(key, eventMap[key], false);
65+
if (typeof document !== 'undefined') {
66+
document.removeEventListener(key, eventMap[key], false);
67+
}
6468
});
6569
}
6670

@@ -359,7 +363,7 @@ class ReactSlider extends React.Component {
359363

360364
onEnd(eventMap) {
361365
removeHandlers(eventMap);
362-
this.fireChangeEvent.bind(this, 'onAfterChange');
366+
this.fireChangeEvent('onAfterChange');
363367
}
364368

365369
onMouseMove = e => {

src/components/ReactSlider/__tests__/ReactSlider.test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,14 @@ describe('<ReactSlider>', () => {
77
const tree = renderer.create(<ReactSlider />).toJSON();
88
expect(tree).toMatchSnapshot();
99
});
10+
11+
it('should call onAfterChange callback when onEnd is called', () => {
12+
const onAfterChange = jest.fn();
13+
const testRenderer = renderer.create(<ReactSlider onAfterChange={onAfterChange} />);
14+
const testInstance = testRenderer.root;
15+
16+
expect(onAfterChange).not.toHaveBeenCalled();
17+
testInstance.instance.onBlur();
18+
expect(onAfterChange).toHaveBeenCalledTimes(1);
19+
});
1020
});

0 commit comments

Comments
 (0)