diff --git a/frontend/compare.js b/frontend/compare.js index b46864f..c9d8d2f 100644 --- a/frontend/compare.js +++ b/frontend/compare.js @@ -78,7 +78,12 @@ async function start(){ for(const element of [filter,document.querySelector('#only-changes'),document.querySelector('#highlights')])element.addEventListener('change',applyFilters); document.querySelector('#fit').addEventListener('click',()=>{for(const view of views)view.fit();}); document.querySelector('#sync').addEventListener('change',()=>{if(document.querySelector('#sync').checked&&views[0])views[1].apply(views[0].pose());}); - function next(delta){const candidates=visibleChanges();if(!candidates.length)return;const index=candidates.findIndex(c=>c.id===selected);select(candidates[(index+delta+candidates.length)%candidates.length]);} + function next(delta){ + const candidates=visibleChanges();if(!candidates.length)return; + const index=candidates.findIndex(c=>c.id===selected); + const target=index<0?(delta>0?0:candidates.length-1):(index+delta+candidates.length)%candidates.length; + select(candidates[target]); + } document.querySelector('#previous').addEventListener('click',()=>next(-1));document.querySelector('#next').addEventListener('click',()=>next(1)); for(const svg of svgs)svg.addEventListener('click',event=>{const id=event.target.closest('[data-change-id]')?.dataset.changeId;if(byId.has(id))select(byId.get(id));}); applyFilters();