diff options
| author | Terry Truong <terry06890@gmail.com> | 2023-01-07 21:30:20 +1100 |
|---|---|---|
| committer | Terry Truong <terry06890@gmail.com> | 2023-01-07 21:37:02 +1100 |
| commit | ccdc73e303a640e61e02a67cedac92075f1ea4af (patch) | |
| tree | c68f861e6d3fa19312a8f925ee2b2bc9361c8982 /src | |
| parent | 65c66629c2f2fe8dd05a742bf7d488329c1beb98 (diff) | |
Do minor refactor of panning code
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/TimeLine.vue | 64 |
1 files changed, 29 insertions, 35 deletions
diff --git a/src/components/TimeLine.vue b/src/components/TimeLine.vue index 3368ae7..16990d7 100644 --- a/src/components/TimeLine.vue +++ b/src/components/TimeLine.vue @@ -755,8 +755,20 @@ function panTimeline(scrollRatio: number){ let [numStartSteps, numEndSteps, newStartOffset, newEndOffset] = getMovedBounds(startOffset.value, endOffset.value, chgUnits, chgUnits); if (scrollRatio > 0){ - while (true){ - if (newEnd.equals(MAX_DATE, scale.value)){ + while (true){ // Incrementally update newStart and newEnd using getMovedBounds() result + if (newEnd.isEarlier(MAX_DATE, scale.value)){ + if (numEndSteps > 0){ + stepDate(newEnd, scale.value, {inplace: true}); + numEndSteps -= 1; + if (numStartSteps > 0){ + stepDate(newStart, scale.value, {inplace: true}); + numStartSteps -= 1; + } + } else { + stepDate(newStart, scale.value, {count: numStartSteps, inplace: true}); + break; + } + } else { // Pan up to an offset of store.defaultEndTickOffset if (store.defaultEndTickOffset == endOffset.value){ console.log('Reached maximum date limit'); @@ -771,31 +783,28 @@ function panTimeline(scrollRatio: number){ getMovedBounds(startOffset.value, endOffset.value, chgUnits, chgUnits); stepDate(newStart, scale.value, {count: extraStartSteps, inplace: true}); } else { - if (numStartSteps > 0){ - stepDate(newStart, scale.value, {count: numStartSteps, inplace: true}); - } + stepDate(newStart, scale.value, {count: numStartSteps, inplace: true}); } } numStartSteps = 0; break; } - if (numEndSteps > 0){ - stepDate(newEnd, scale.value, {inplace: true}); - numEndSteps -= 1; - if (numStartSteps > 0){ - stepDate(newStart, scale.value, {inplace: true}); - numStartSteps -= 1; - } - } else { - if (numStartSteps > 0){ - stepDate(newStart, scale.value, {count: numStartSteps, inplace: true}); - } - break; - } } } else { while (true){ - if (MIN_DATE.equals(newStart, scale.value)){ + if (MIN_DATE.isEarlier(newStart, scale.value)){ + if (numStartSteps < 0){ + stepDate(newStart, scale.value, {forward: false, inplace: true}); + numStartSteps += 1; + if (numEndSteps < 0){ + stepDate(newEnd, scale.value, {forward: false, inplace: true}); + numEndSteps += 1; + } + } else { + stepDate(newEnd, scale.value, {count: numEndSteps, inplace: true}); + break; + } + } else { // Pan up to an offset of store.defaultEndTickOffset if (store.defaultEndTickOffset == startOffset.value){ console.log('Reached minimum date limit'); @@ -810,27 +819,12 @@ function panTimeline(scrollRatio: number){ getMovedBounds(startOffset.value, endOffset.value, chgUnits, chgUnits); stepDate(newEnd, scale.value, {count: extraEndSteps, inplace: true}); } else { - if (numEndSteps < 0){ - stepDate(newEnd, scale.value, {count: numEndSteps, inplace: true}); - } + stepDate(newEnd, scale.value, {count: numEndSteps, inplace: true}); } } numEndSteps = 0; break; } - if (numStartSteps < 0){ - stepDate(newStart, scale.value, {forward: false, inplace: true}); - numStartSteps += 1; - if (numEndSteps < 0){ - stepDate(newEnd, scale.value, {forward: false, inplace: true}); - numEndSteps += 1; - } - } else { - if (numEndSteps < 0){ - stepDate(newEnd, scale.value, {count: numEndSteps, inplace: true}); - } - break; - } } } if (newStart.isEarlier(MIN_CAL_DATE, scale.value) && (scale.value == MONTH_SCALE || scale.value == DAY_SCALE)){ |
