Skip to content

Commit 6f678a1

Browse files
committed
onChangeStart & onChangeComplete pass value
1 parent e3a73a5 commit 6f678a1

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

src/Rangeslider.js

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,26 @@ class Slider extends Component {
101101
})
102102
}
103103

104+
/**
105+
* Attach event listeners to mousemove/mouseup events
106+
* @param e - Event object
107+
* @return value - Slider value
108+
*/
109+
getValueFromEvent = (e) => {
110+
const { target: { classList, dataset } } = e
111+
let value = this.position(e)
112+
113+
if (
114+
classList &&
115+
classList.contains('rangeslider__label-item') &&
116+
dataset.value
117+
) {
118+
value = parseFloat(dataset.value)
119+
}
120+
121+
return value
122+
}
123+
104124
/**
105125
* Attach event listeners to mousemove/mouseup events
106126
* @return {void}
@@ -109,12 +129,15 @@ class Slider extends Component {
109129
const { onChangeStart } = this.props
110130
document.addEventListener('mousemove', this.handleDrag)
111131
document.addEventListener('mouseup', this.handleEnd)
132+
133+
const value = this.getValueFromEvent(e)
134+
112135
this.setState(
113136
{
114137
active: true
115138
},
116139
() => {
117-
onChangeStart && onChangeStart(e)
140+
onChangeStart && onChangeStart(value, e)
118141
}
119142
)
120143
}
@@ -127,18 +150,10 @@ class Slider extends Component {
127150
handleDrag = e => {
128151
e.stopPropagation()
129152
const { onChange } = this.props
130-
const { target: { className, classList, dataset } } = e
153+
const { target: { className } } = e
131154
if (!onChange || className === 'rangeslider__labels') return
132155

133-
let value = this.position(e)
134-
135-
if (
136-
classList &&
137-
classList.contains('rangeslider__label-item') &&
138-
dataset.value
139-
) {
140-
value = parseFloat(dataset.value)
141-
}
156+
const value = this.getValueFromEvent(e)
142157

143158
onChange && onChange(value, e)
144159
}
@@ -149,12 +164,15 @@ class Slider extends Component {
149164
*/
150165
handleEnd = e => {
151166
const { onChangeComplete } = this.props
167+
168+
const value = this.getValueFromEvent(e)
169+
152170
this.setState(
153171
{
154172
active: false
155173
},
156174
() => {
157-
onChangeComplete && onChangeComplete(e)
175+
onChangeComplete && onChangeComplete(value, e)
158176
}
159177
)
160178
document.removeEventListener('mousemove', this.handleDrag)

0 commit comments

Comments
 (0)