Skip to content

Commit 46f5823

Browse files
committed
fix slider lint issues
1 parent 0e4e031 commit 46f5823

1 file changed

Lines changed: 13 additions & 6 deletions

File tree

src/Slider.tsx

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,11 @@ const Slider = React.forwardRef<SliderRef, SliderProps<number | number[]>>((prop
214214

215215
// ============================ Marks =============================
216216
const markList = React.useMemo<InternalMarkObj[]>(() => {
217-
return Object.keys(marks || {})
217+
const markRecord = marks || {};
218+
219+
return Object.keys(markRecord)
218220
.map<InternalMarkObj>((key) => {
219-
const mark = marks[key];
221+
const mark = markRecord[key];
220222
const markObj: InternalMarkObj = {
221223
value: Number(key),
222224
};
@@ -269,7 +271,7 @@ const Slider = React.forwardRef<SliderRef, SliderProps<number | number[]>>((prop
269271

270272
// When count provided or value is `undefined`, we fill values
271273
if (count || mergedValue === undefined) {
272-
const pointCount = count >= 0 ? count + 1 : 2;
274+
const pointCount = count !== undefined && count >= 0 ? count + 1 : 2;
273275
returnValues = returnValues.slice(0, pointCount);
274276

275277
// Fill with count
@@ -287,6 +289,8 @@ const Slider = React.forwardRef<SliderRef, SliderProps<number | number[]>>((prop
287289

288290
return returnValues;
289291
}, [mergedValue, rangeEnabled, mergedMin, count, formatValue]);
292+
const rawValuesRef = React.useRef(rawValues);
293+
rawValuesRef.current = rawValues;
290294

291295
// =========================== onChange ===========================
292296
const getTriggerValue = (triggerValues: number[]) =>
@@ -349,6 +353,8 @@ const Slider = React.forwardRef<SliderRef, SliderProps<number | number[]>>((prop
349353
rangeEditable,
350354
minCount,
351355
);
356+
const draggingValueRef = React.useRef(draggingValue);
357+
draggingValueRef.current = draggingValue;
352358

353359
/**
354360
* When `rangeEditable` will insert a new value in the values array.
@@ -455,7 +461,7 @@ const Slider = React.forwardRef<SliderRef, SliderProps<number | number[]>>((prop
455461

456462
React.useEffect(() => {
457463
if (keyboardValue !== null) {
458-
const valueIndex = rawValues.indexOf(keyboardValue);
464+
const valueIndex = rawValuesRef.current.indexOf(keyboardValue);
459465
if (valueIndex >= 0) {
460466
handlesRef.current.focus(valueIndex);
461467
}
@@ -485,7 +491,7 @@ const Slider = React.forwardRef<SliderRef, SliderProps<number | number[]>>((prop
485491
const dragging = draggingIndex !== -1;
486492
React.useEffect(() => {
487493
if (!dragging) {
488-
const valueIndex = rawValues.lastIndexOf(draggingValue);
494+
const valueIndex = rawValuesRef.current.lastIndexOf(draggingValueRef.current);
489495
handlesRef.current.focus(valueIndex);
490496
}
491497
}, [dragging]);
@@ -520,8 +526,9 @@ const Slider = React.forwardRef<SliderRef, SliderProps<number | number[]>>((prop
520526
}));
521527

522528
// ========================== Auto Focus ==========================
529+
const autoFocusRef = React.useRef(autoFocus);
523530
React.useEffect(() => {
524-
if (autoFocus) {
531+
if (autoFocusRef.current) {
525532
handlesRef.current.focus(0);
526533
}
527534
}, []);

0 commit comments

Comments
 (0)