Huge update.

This commit is contained in:
2025-06-11 03:31:59 +12:00
parent 699b829696
commit d1390bd770
14 changed files with 429 additions and 148 deletions

View File

@@ -0,0 +1,67 @@
const STORAGE_VERSION = '11'; // Update this when changing storage structure
if (localStorage.getItem('version') !== STORAGE_VERSION) {
localStorage.clear();
localStorage.setItem('version', STORAGE_VERSION);
}
const savedSettingDarkPersist = localStorage.getItem('dark-mode-toggle');
if (savedSettingDarkPersist === 'true') {
document.body.classList.add('dark');
} else {
document.body.classList.remove('dark');
}
document.documentElement.classList.add('no-transitions');
setTimeout(function() {
document.documentElement.classList.remove('no-transitions');
}, 100);
function updateNavbarWithRooms() {
const navbar = document.querySelector('.navbar');
if (!navbar) return;
const linksToRemove = [];
navbar.querySelectorAll('a').forEach(link => {
if (link.href && link.href.includes('/room/')) {
linksToRemove.push(link);
}
});
linksToRemove.forEach(link => link.remove());
const allUsernames = JSON.parse(localStorage.getItem('usernames') || '{}');
const rooms = Object.keys(allUsernames);
rooms.forEach(roomCode => {
const roomLink = document.createElement('a');
roomLink.href = `/room/${roomCode}`;
roomLink.textContent = `Room: ${roomCode}`;
const removeBtn = document.createElement('span');
removeBtn.textContent = ' ×';
removeBtn.onclick = (e) => {
e.preventDefault();
e.stopPropagation();
removeRoom(roomCode);
};
roomLink.appendChild(removeBtn);
const settingsLink = navbar.querySelector('a[href="/settings"]');
if (settingsLink) {
settingsLink.before(roomLink);
} else {
navbar.appendChild(roomLink);
}
});
}
function removeRoom(roomCode) {
const allUsernames = JSON.parse(localStorage.getItem('usernames')) || '{}';
delete allUsernames[roomCode];
localStorage.setItem('usernames', JSON.stringify(allUsernames));
updateNavbarWithRooms();
}
document.addEventListener('DOMContentLoaded', updateNavbarWithRooms);