X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/5038b06bdf1c49d6ac2d989d45934dace0ef0377..6af214b2285d3292f214320b7221f7c9a1d76914:/app/assets/javascripts/heatmap.js diff --git a/app/assets/javascripts/heatmap.js b/app/assets/javascripts/heatmap.js index 240707609..831ac4b6e 100644 --- a/app/assets/javascripts/heatmap.js +++ b/app/assets/javascripts/heatmap.js @@ -11,10 +11,12 @@ document.addEventListener("DOMContentLoaded", () => { return; } + /** @type {{date: string; max_id: number; total_changes: number}[]} */ const heatmapData = heatmapElement.dataset.heatmap ? JSON.parse(heatmapElement.dataset.heatmap) : []; const displayName = heatmapElement.dataset.displayName; const colorScheme = document.documentElement.getAttribute("data-bs-theme") ?? "auto"; - const rangeColors = ["#14432a", "#166b34", "#37a446", "#4dd05a"]; + const rangeColorsDark = ["#14432a", "#4dd05a"]; + const rangeColorsLight = ["#4dd05a", "#14432a"]; const startDate = new Date(Date.now() - (365 * 24 * 60 * 60 * 1000)); const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)"); @@ -58,9 +60,9 @@ document.addEventListener("DOMContentLoaded", () => { }, scale: { color: { - type: "threshold", - range: currentTheme === "dark" ? rangeColors : Array.from(rangeColors).reverse(), - domain: [10, 20, 30, 40] + type: "sqrt", + range: currentTheme === "dark" ? rangeColorsDark : rangeColorsLight, + domain: [0, Math.max(0, ...heatmapData.map(d => d.total_changes))] } } }, [