Skip to content

Commit 1b37adf

Browse files
authored
Merge pull request #148 from LennartvdM/codex/remove-empty-lower-panel-from-visuals-tab
Remove unused fallback panel from visuals layout
2 parents 672f764 + 1e89167 commit 1b37adf

1 file changed

Lines changed: 52 additions & 18 deletions

File tree

web/app.js

Lines changed: 52 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -190,12 +190,61 @@ function persistVisualsLegacyFlag(enabled) {
190190
}
191191
}
192192

193+
function ensureVisualsFallbackPanel() {
194+
if (visualsState.fallback && visualsState.fallbackImg && visualsState.fallbackMessage) {
195+
if (visualsState.fallback.parentElement || !visualsState.mainPanel) {
196+
return;
197+
}
198+
visualsState.mainPanel.append(visualsState.fallback);
199+
return;
200+
}
201+
202+
if (!visualsState.mainPanel) {
203+
return;
204+
}
205+
206+
const fallback = document.createElement('div');
207+
fallback.className = 'visuals-fallback-panel';
208+
fallback.hidden = true;
209+
210+
const fallbackImg = document.createElement('img');
211+
fallbackImg.className = 'visuals-fallback-panel__image';
212+
fallbackImg.alt = 'Legacy visuals preview unavailable';
213+
fallbackImg.hidden = true;
214+
215+
const fallbackMessage = document.createElement('p');
216+
fallbackMessage.className = 'visuals-fallback-panel__message';
217+
fallbackMessage.textContent = 'Legacy visuals preview unavailable.';
218+
fallbackMessage.hidden = true;
219+
220+
fallback.append(fallbackImg, fallbackMessage);
221+
visualsState.mainPanel.append(fallback);
222+
223+
visualsState.fallback = fallback;
224+
visualsState.fallbackImg = fallbackImg;
225+
visualsState.fallbackMessage = fallbackMessage;
226+
}
227+
228+
function removeFallbackPanel() {
229+
if (visualsState.fallback && visualsState.fallback.parentElement) {
230+
visualsState.fallback.parentElement.removeChild(visualsState.fallback);
231+
}
232+
}
233+
193234
function syncVisualsVisibility() {
194235
if (visualsState.mount) {
195236
visualsState.mount.hidden = visualsState.useLegacy;
196237
}
197-
if (visualsState.fallback) {
198-
visualsState.fallback.hidden = !visualsState.useLegacy;
238+
if (visualsState.useLegacy) {
239+
ensureVisualsFallbackPanel();
240+
if (visualsState.fallback) {
241+
visualsState.fallback.hidden = false;
242+
}
243+
} else {
244+
if (visualsState.fallback) {
245+
visualsState.fallback.hidden = true;
246+
}
247+
removeFallbackPanel();
199248
}
200249
}
201250

@@ -275,6 +324,7 @@ function updateVisuals(payload) {
275324
}
276325

277326
if (visualsState.useLegacy) {
327+
ensureVisualsFallbackPanel();
278328
resetVisualsInstance();
279329
const src = resolveLegacyPng(lastVisualPayload);
280330
if (visualsState.fallbackImg) {
@@ -433,22 +483,6 @@ function initVisualsMount() {
433483
mainPanel.append(mount);
434484
visualsState.mount = mount;
435485

436-
const fallback = document.createElement('div');
437-
fallback.className = 'visuals-fallback-panel';
438-
const fallbackImg = document.createElement('img');
439-
fallbackImg.className = 'visuals-fallback-panel__image';
440-
fallbackImg.alt = 'Legacy visuals preview unavailable';
441-
fallbackImg.hidden = true;
442-
const fallbackMessage = document.createElement('p');
443-
fallbackMessage.className = 'visuals-fallback-panel__message';
444-
fallbackMessage.textContent = 'Legacy visuals preview unavailable.';
445-
fallbackMessage.hidden = true;
446-
fallback.append(fallbackImg, fallbackMessage);
447-
mainPanel.append(fallback);
448-
visualsState.fallback = fallback;
449-
visualsState.fallbackImg = fallbackImg;
450-
visualsState.fallbackMessage = fallbackMessage;
451-
452486
const overlay = document.createElement('div');
453487
overlay.className = 'visuals-status-overlay';
454488
overlay.hidden = true;

0 commit comments

Comments
 (0)