mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-08-28 20:08:19 +00:00
Matrix mode forces dark mode, restores on toggle off
- Saves previous theme, switches to dark, disables theme toggle - On Matrix off: restores original theme + re-enables toggle - Dark mode tiles + green filter = actually visible map
This commit is contained in:
+1
-1
@@ -90,7 +90,7 @@
|
||||
<script src="nodes.js?v=1774126708" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="traces.js?v=1774135052" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="analytics.js?v=1774126708" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="live.js?v=1774164006" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="live.js?v=1774164059" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="observers.js?v=1774290000" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="observer-detail.js?v=1774028201" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="node-analytics.js?v=1774126708" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
|
||||
+24
-4
@@ -1683,15 +1683,24 @@
|
||||
const container = document.getElementById('liveMap');
|
||||
if (!container) return;
|
||||
if (on) {
|
||||
// Force dark mode, save previous theme to restore later
|
||||
const currentTheme = document.documentElement.getAttribute('data-theme');
|
||||
if (currentTheme !== 'dark') {
|
||||
container.dataset.matrixPrevTheme = currentTheme || 'light';
|
||||
document.documentElement.setAttribute('data-theme', 'dark');
|
||||
const dt = document.getElementById('darkModeToggle');
|
||||
if (dt) { dt.textContent = '🌙'; dt.disabled = true; }
|
||||
} else {
|
||||
const dt = document.getElementById('darkModeToggle');
|
||||
if (dt) dt.disabled = true;
|
||||
}
|
||||
container.classList.add('matrix-theme');
|
||||
// Add scanline overlay if not present
|
||||
if (!document.getElementById('matrixScanlines')) {
|
||||
const scanlines = document.createElement('div');
|
||||
scanlines.id = 'matrixScanlines';
|
||||
scanlines.className = 'matrix-scanlines';
|
||||
container.appendChild(scanlines);
|
||||
}
|
||||
// Re-tint existing node markers green
|
||||
for (const [key, marker] of Object.entries(nodeMarkers)) {
|
||||
marker._matrixPrevColor = marker._baseColor;
|
||||
marker._baseColor = '#005f15';
|
||||
@@ -1702,11 +1711,22 @@
|
||||
container.classList.remove('matrix-theme');
|
||||
const scanlines = document.getElementById('matrixScanlines');
|
||||
if (scanlines) scanlines.remove();
|
||||
// Restore node marker colors
|
||||
// Restore previous theme
|
||||
const prevTheme = container.dataset.matrixPrevTheme;
|
||||
if (prevTheme) {
|
||||
document.documentElement.setAttribute('data-theme', prevTheme);
|
||||
localStorage.setItem('meshcore-theme', prevTheme);
|
||||
const dt = document.getElementById('darkModeToggle');
|
||||
if (dt) { dt.textContent = prevTheme === 'dark' ? '🌙' : '☀️'; dt.disabled = false; }
|
||||
delete container.dataset.matrixPrevTheme;
|
||||
} else {
|
||||
const dt = document.getElementById('darkModeToggle');
|
||||
if (dt) dt.disabled = false;
|
||||
}
|
||||
for (const [key, marker] of Object.entries(nodeMarkers)) {
|
||||
if (marker._matrixPrevColor) {
|
||||
marker._baseColor = marker._matrixPrevColor;
|
||||
marker.setStyle({ fillColor: marker._matrixPrevColor, color: '#fff' });
|
||||
marker.setStyle({ fillColor: marker._matrixPrevColor, color: '#fff', fillOpacity: 0.85, opacity: 1 });
|
||||
if (marker._glowMarker) marker._glowMarker.setStyle({ fillColor: marker._matrixPrevColor });
|
||||
delete marker._matrixPrevColor;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user