fix: modulekolom past zich aan het aantal modules aan

Er is een vierde binnenmodule bijgekomen. De kaart verscheen al vanzelf
(StationMapper leest alle NAModule4-modules uit), maar de kolom was op
drie kaarten ontworpen: vier kaarten van 120px duwden de rij op 481px en
daarmee de onderste strook 39px voorbij de onderrand van het canvas.

De kolom heeft nu een vaste hoogte van 412px met overflow verborgen, en
fitRooms() verkleint de inhoud met een schaal zodra die niet past. Bij
drie modules verandert er niets (schaal 1), bij vier wordt het 0,86 en
met een vastgezette module 0,78. Zo blijft het scherm kloppen, ongeacht
hoeveel modules erbij komen.

De dev-fixture heeft er een vierde module bij, zodat dit lokaal te zien
is zonder Netatmo-koppeling. Servicewerker naar v12.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-14 18:44:38 +02:00
co-authored by Claude Opus 5
parent 75111a5571
commit ca2fc76552
8 changed files with 49 additions and 7 deletions
+14 -1
View File
@@ -121,7 +121,7 @@ test('msUntil computes the wait until the next local time', () => {
import {
co2Level, fPct, fHpa, seriesRange, sparklinePath, sparklinePoints,
windArrowDeg, fKmh, formatHour, formatFullDate, pinRoom, hourTicks,
windArrowDeg, fKmh, formatHour, formatFullDate, pinRoom, hourTicks, scaleToFit,
} from '../../public/format.js';
test('co2Level uses the Netatmo thresholds', () => {
@@ -244,3 +244,16 @@ test('hourTicks gives nothing for an empty or invalid window', () => {
assert.deepEqual(hourTicks('kapot', '2026-09-13T10:00:00+02:00', TZ), []);
assert.deepEqual(hourTicks(undefined, undefined, TZ), []);
});
test('scaleToFit shrinks to fit but never enlarges', () => {
assert.equal(scaleToFit(481, 412), 412 / 481);
assert.equal(scaleToFit(361, 412), 1, 'past al: niet vergroten');
assert.equal(scaleToFit(412, 412), 1);
});
test('scaleToFit is safe with nonsense input', () => {
assert.equal(scaleToFit(0, 412), 1);
assert.equal(scaleToFit(-10, 412), 1);
assert.equal(scaleToFit(481, 0), 1);
assert.equal(scaleToFit(undefined, 412), 1);
});