Skip to content

Commit bd95b07

Browse files
committed
Improvement - SlicerPreview - Update start & end values once per frame
1 parent 0028edf commit bd95b07

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

src/atoms/SlicerPreview.vue

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -402,31 +402,40 @@ function coerceInput(eOrVal) {
402402
return Number.isFinite(n) ? n : NaN;
403403
}
404404
405+
let rafStart = 0;
405406
function setStartValue(eOrVal) {
406407
isRanging.value = true;
407408
const n = coerceInput(eOrVal);
408409
if (!Number.isFinite(n)) return;
409-
start.value = n;
410+
cancelAnimationFrame(rafStart);
411+
rafStart = requestAnimationFrame(() => {
412+
start.value = n;
413+
});
410414
}
411415
416+
let rafEnd = 0;
412417
function setEndValue(eOrVal) {
413418
isRanging.value = true;
414419
const n = coerceInput(eOrVal);
415420
if (!Number.isFinite(n)) return;
416-
end.value = n;
421+
cancelAnimationFrame(rafEnd);
422+
rafEnd = requestAnimationFrame(() => {
423+
end.value = n;
424+
});
417425
}
418426
427+
onBeforeUnmount(() => {
428+
cancelAnimationFrame(rafStart);
429+
cancelAnimationFrame(rafEnd);
430+
});
431+
419432
const currentRange = computed(() => {
420433
return props.valueEnd - props.valueStart;
421434
});
422435
423436
const isDragging = ref(false);
424437
let initialMouseX = ref(null);
425438
426-
const dragThreshold = computed(() => {
427-
return (wrapperWidth.value - 48) / (props.max - props.min);
428-
});
429-
430439
const selectionWidth = computed(() => {
431440
return ((wrapperWidth.value - 48) / (props.max - props.min)) * currentRange.value;
432441
});
@@ -884,7 +893,6 @@ defineExpose({
884893
@keyup.enter="commitImmediately"
885894
@blur="commitImmediately"
886895
@mouseenter="setLeftLabelZIndex('start')"
887-
@pointermove="start = +$event.target.value"
888896
@pointerup="commitImmediately"
889897
/>
890898

@@ -906,7 +914,6 @@ defineExpose({
906914
@keyup.enter="commitImmediately"
907915
@blur="commitImmediately"
908916
@mouseenter="setLeftLabelZIndex('end')"
909-
@pointermove="end = +$event.target.value"
910917
@pointerup="commitImmediately"
911918
/>
912919

0 commit comments

Comments
 (0)