Skip to content

Commit f49da0c

Browse files
fix: ensure smooth transition on first brightness/temp change
Create overlay elements via createOverlays() helper method instead of inline creation. This ensures the CSS transition is applied from the first use, not just subsequent changes. - Add createOverlays() method to create both overlays if missing - Call createOverlays() in setBrightness() and setTemp() - Remove inline overlay creation logic
1 parent 2d2ee30 commit f49da0c

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

MMM-Remote-Control.js

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,20 @@ Module.register("MMM-Remote-Control", {
3333
this.qrCodeDataUrl = null;
3434
},
3535

36+
createOverlays () {
37+
if (!document.getElementById("remote-control-overlay-brightness")) {
38+
const brightnessOverlay = document.createElement("div");
39+
brightnessOverlay.id = "remote-control-overlay-brightness";
40+
document.body.insertBefore(brightnessOverlay, document.body.firstChild);
41+
}
42+
43+
if (!document.getElementById("remote-control-overlay-temp")) {
44+
const tempOverlay = document.createElement("div");
45+
tempOverlay.id = "remote-control-overlay-temp";
46+
document.body.insertBefore(tempOverlay, document.body.firstChild);
47+
}
48+
},
49+
3650
getStyles () {
3751
return ["MMM-Remote-Control.css"];
3852
},
@@ -138,27 +152,16 @@ Module.register("MMM-Remote-Control", {
138152
newBrightnessValue = Math.max(0, Math.min(100, newBrightnessValue));
139153
Log.debug("BRIGHTNESS", newBrightnessValue);
140154

141-
let overlay = document.getElementById("remote-control-overlay-brightness");
142-
if (!overlay) {
143-
overlay = document.createElement("div");
144-
overlay.id = "remote-control-overlay-brightness";
145-
document.body.insertBefore(overlay, document.body.firstChild);
146-
}
147-
155+
this.createOverlays();
156+
const overlay = document.getElementById("remote-control-overlay-brightness");
148157
const opacity = (100 - newBrightnessValue) / 100;
149158
overlay.style.backgroundColor = `rgba(0, 0, 0, ${opacity})`;
150159
this.brightness = newBrightnessValue;
151160
},
152161

153162
setTemp (temperature) {
154-
let overlay = document.querySelector("#remote-control-overlay-temp");
155-
if (!overlay) {
156-
// if not existing, create overlay
157-
overlay = document.createElement("div");
158-
overlay.id = "remote-control-overlay-temp";
159-
const parent = document.body;
160-
parent.insertBefore(overlay, parent.firstChild);
161-
}
163+
this.createOverlays();
164+
const overlay = document.getElementById("remote-control-overlay-temp");
162165

163166
if (temperature > 327) {
164167
overlay.style.backgroundColor = `rgba(255,215,0,${(temperature - 325) / 865})`;

0 commit comments

Comments
 (0)