From 29cfa650eaff016076ab54a4599bf3867b37267f Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Sun, 13 Apr 2025 18:11:25 +0300 Subject: [PATCH] Move changeset colors to css --- .../index/history-changesets-layer.js | 22 +++++++++++++++---- app/assets/stylesheets/common.scss | 8 +++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/index/history-changesets-layer.js b/app/assets/javascripts/index/history-changesets-layer.js index 751105e72..097c94642 100644 --- a/app/assets/javascripts/index/history-changesets-layer.js +++ b/app/assets/javascripts/index/history-changesets-layer.js @@ -2,16 +2,30 @@ OSM.HistoryChangesetsLayer = L.FeatureGroup.extend({ _changesets: new Map, _getChangesetStyle: function ({ isHighlighted }) { + let className = "changeset-in-sidebar-viewport"; + + if (isHighlighted) { + className += " changeset-highlighted"; + } + return { weight: isHighlighted ? 3 : 2, - color: isHighlighted ? "#FF6600" : "#FF9500", - fillColor: "#FFFFAF", - fillOpacity: isHighlighted ? 0.3 : 0 + color: "var(--changeset-border-color)", + fillColor: "var(--changeset-fill-color)", + fillOpacity: isHighlighted ? 0.3 : 0, + className }; }, _updateChangesetStyle: function (changeset) { - this.getLayer(changeset.id)?.setStyle(this._getChangesetStyle(changeset)); + const rect = this.getLayer(changeset.id); + if (!rect) return; + + const style = this._getChangesetStyle(changeset); + rect.setStyle(style); + // setStyle doesn't update css classes: https://github.com/leaflet/leaflet/issues/2662 + rect._path.classList.value = style.className; + rect._path.classList.add("leaflet-interactive"); }, updateChangesets: function (map, changesets) { diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index 2cfd5eba7..f43415e80 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -601,6 +601,14 @@ tr.turn { /* Rules for the history sidebar */ +.changeset-in-sidebar-viewport { + --changeset-border-color: #FF9500; + &.changeset-highlighted { + --changeset-border-color: #FF6600; + } + --changeset-fill-color: #FFFFAF; +} + #sidebar .changesets { li { &.selected { -- 2.39.5