]> git.openstreetmap.org Git - rails.git/commitdiff
Add _getSidebarRelativeClassName helper method
authorAnton Khorev <tony29@yandex.ru>
Sat, 19 Apr 2025 15:30:34 +0000 (18:30 +0300)
committerAnton Khorev <tony29@yandex.ru>
Sat, 19 Apr 2025 15:44:41 +0000 (18:44 +0300)
To be used in multiple _get*Style() methods later.

app/assets/javascripts/index/history-changesets-layer.js

index a449fc1ba50a6dcca5954d5325c2060b75b26020..40732b9bf3f747b09cdaa0e7ca3908b13155c887 100644 (file)
@@ -1,24 +1,21 @@
 OSM.HistoryChangesetsLayer = L.FeatureGroup.extend({
-  _getChangesetStyle: function ({ isHighlighted, sidebarRelativePosition }) {
-    let className;
-
+  _getSidebarRelativeClassName: function ({ sidebarRelativePosition }) {
     if (sidebarRelativePosition > 0) {
-      className = "changeset-above-sidebar-viewport";
+      return "changeset-above-sidebar-viewport";
     } else if (sidebarRelativePosition < 0) {
-      className = "changeset-below-sidebar-viewport";
+      return "changeset-below-sidebar-viewport";
     } else {
-      className = "changeset-in-sidebar-viewport";
-    }
-    if (isHighlighted) {
-      className += " changeset-highlighted";
+      return "changeset-in-sidebar-viewport";
     }
+  },
 
+  _getInteractiveStyle: function (changeset) {
     return {
-      weight: isHighlighted ? 4 : 2,
+      weight: changeset.isHighlighted ? 4 : 2,
       color: "var(--changeset-border-color)",
       fillColor: "var(--changeset-fill-color)",
-      fillOpacity: isHighlighted ? 0.3 : 0,
-      className
+      fillOpacity: changeset.isHighlighted ? 0.3 : 0,
+      className: this._getSidebarRelativeClassName(changeset) + (changeset.isHighlighted ? " changeset-highlighted" : "")
     };
   },
 
@@ -26,7 +23,7 @@ OSM.HistoryChangesetsLayer = L.FeatureGroup.extend({
     const rect = this._interactiveLayer.getLayer(changeset.id);
     if (!rect) return;
 
-    const style = this._getChangesetStyle(changeset);
+    const style = this._getInteractiveStyle(changeset);
     rect.setStyle(style);
     // setStyle doesn't update css classes: https://github.com/leaflet/leaflet/issues/2662
     rect._path.classList.value = style.className;
@@ -96,7 +93,7 @@ OSM.HistoryChangesetsLayer = L.FeatureGroup.extend({
 
     for (const changeset of this._changesets.values()) {
       delete changeset.isHighlighted;
-      const rect = L.rectangle(changeset.bounds, this._getChangesetStyle(changeset));
+      const rect = L.rectangle(changeset.bounds, this._getInteractiveStyle(changeset));
       rect.id = changeset.id;
       rect.addTo(this._interactiveLayer);
     }