Windows
This commit is contained in:
@@ -16,15 +16,13 @@ const participantList = document.getElementById('participant-list');
|
||||
const adminControls = document.getElementById('admin-controls');
|
||||
const revealBtn = document.getElementById('reveal-btn');
|
||||
const resetBtn = document.getElementById('reset-btn');
|
||||
const terminalBtn = document.getElementById('terminal-btn');
|
||||
const shareLinkInput = document.getElementById('share-link');
|
||||
const shareAdminToggle = document.getElementById('share-admin-toggle');
|
||||
const votesCounter = document.getElementById('votes-counter');
|
||||
const roomMessage = document.getElementById('room-message');
|
||||
const changeNameBtn = document.getElementById('change-name-btn');
|
||||
const terminalModalOverlay = document.getElementById('terminal-modal-overlay');
|
||||
const terminalCloseBtn = document.getElementById('terminal-close-btn');
|
||||
const terminalLogOutput = document.getElementById('terminal-log-output');
|
||||
const TERMINAL_WINDOW_ID = 'terminal-tool-window';
|
||||
|
||||
const joinPanel = document.getElementById('join-panel');
|
||||
const joinForm = document.getElementById('join-form');
|
||||
@@ -315,15 +313,6 @@ function renderTerminalLogs(logs) {
|
||||
terminalLogOutput.scrollTop = terminalLogOutput.scrollHeight;
|
||||
}
|
||||
|
||||
function openTerminal() {
|
||||
terminalModalOverlay.classList.remove('hidden');
|
||||
renderTerminalLogs(latestAdminLogs);
|
||||
}
|
||||
|
||||
function closeTerminal() {
|
||||
terminalModalOverlay.classList.add('hidden');
|
||||
}
|
||||
|
||||
function renderState(state) {
|
||||
roomTitle.textContent = `${state.roomName} (${state.roomId})`;
|
||||
revealModeLabel.textContent = `Reveal mode: ${state.revealMode}`;
|
||||
@@ -341,16 +330,18 @@ function renderState(state) {
|
||||
latestLinks = state.links || { participantLink: '', adminLink: '' };
|
||||
updateShareLink();
|
||||
|
||||
if (typeof window.setUIWindowAccess === 'function') {
|
||||
window.setUIWindowAccess({ admin: state.viewerIsAdmin });
|
||||
}
|
||||
|
||||
if (state.viewerIsAdmin) {
|
||||
adminControls.classList.remove('hidden');
|
||||
terminalBtn.classList.remove('hidden');
|
||||
} else {
|
||||
adminControls.classList.add('hidden');
|
||||
terminalBtn.classList.add('hidden');
|
||||
closeTerminal();
|
||||
}
|
||||
|
||||
latestAdminLogs = Array.isArray(state.adminLogs) ? state.adminLogs : [];
|
||||
if (state.viewerIsAdmin && !terminalModalOverlay.classList.contains('hidden')) {
|
||||
if (state.viewerIsAdmin && typeof window.isUIWindowOpen === 'function' && window.isUIWindowOpen(TERMINAL_WINDOW_ID)) {
|
||||
renderTerminalLogs(latestAdminLogs);
|
||||
}
|
||||
|
||||
@@ -466,21 +457,21 @@ async function changeName() {
|
||||
|
||||
revealBtn.addEventListener('click', () => adminAction('reveal'));
|
||||
resetBtn.addEventListener('click', () => adminAction('reset'));
|
||||
terminalBtn.addEventListener('click', openTerminal);
|
||||
terminalCloseBtn.addEventListener('click', closeTerminal);
|
||||
terminalModalOverlay.addEventListener('click', (event) => {
|
||||
if (event.target === terminalModalOverlay) {
|
||||
closeTerminal();
|
||||
}
|
||||
});
|
||||
shareAdminToggle.addEventListener('change', updateShareLink);
|
||||
changeNameBtn.addEventListener('click', () => {
|
||||
void changeName();
|
||||
});
|
||||
window.addEventListener('keydown', (event) => {
|
||||
if (event.key === 'Escape') {
|
||||
closeTerminal();
|
||||
document.addEventListener('click', (event) => {
|
||||
const openBtn = event.target.closest('[data-role="open-window"]');
|
||||
if (!openBtn || openBtn.dataset.target !== TERMINAL_WINDOW_ID) {
|
||||
return;
|
||||
}
|
||||
|
||||
requestAnimationFrame(() => {
|
||||
if (typeof window.isUIWindowOpen === 'function' && window.isUIWindowOpen(TERMINAL_WINDOW_ID)) {
|
||||
renderTerminalLogs(latestAdminLogs);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
joinForm.addEventListener('submit', async (event) => {
|
||||
|
||||
Reference in New Issue
Block a user