From 8548ce7b3e0cc029e85ddabcf53be1574370077c Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Wed, 30 Apr 2025 02:55:31 +0300 Subject: [PATCH] Switch from sorting changesets by sidebar position to multiple passes --- .../index/history-changesets-layer.js | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/index/history-changesets-layer.js b/app/assets/javascripts/index/history-changesets-layer.js index be3f9ad1e..ef051a001 100644 --- a/app/assets/javascripts/index/history-changesets-layer.js +++ b/app/assets/javascripts/index/history-changesets-layer.js @@ -113,12 +113,7 @@ OSM.HistoryChangesetsLayer = L.FeatureGroup.extend({ reorderChangesets: function () { const changesetEntries = [...this._changesets]; - changesetEntries.sort(([, a], [, b]) => { - const aInViewport = !a.sidebarRelativePosition; - const bInViewport = !b.sidebarRelativePosition; - if (aInViewport !== bInViewport) return aInViewport - bInViewport; - return b.bounds.getSize() - a.bounds.getSize(); - }); + changesetEntries.sort(([, a], [, b]) => b.bounds.getSize() - a.bounds.getSize()); this._changesets = new Map(changesetEntries); for (const layer of this._bboxLayers) { @@ -126,11 +121,27 @@ OSM.HistoryChangesetsLayer = L.FeatureGroup.extend({ } for (const changeset of this._changesets.values()) { - this._areaLayer.addChangesetLayer(changeset); + if (changeset.sidebarRelativePosition !== 0) { + this._areaLayer.addChangesetLayer(changeset); + } + } + + for (const changeset of this._changesets.values()) { + if (changeset.sidebarRelativePosition === 0) { + this._areaLayer.addChangesetLayer(changeset); + } } for (const changeset of this._changesets.values()) { - this._borderLayer.addChangesetLayer(changeset); + if (changeset.sidebarRelativePosition !== 0) { + this._borderLayer.addChangesetLayer(changeset); + } + } + + for (const changeset of this._changesets.values()) { + if (changeset.sidebarRelativePosition === 0) { + this._borderLayer.addChangesetLayer(changeset); + } } }, -- 2.39.5