Limit audio rooms to Twitter Spaces features and fix live toolbar UX.
Deploy Ladill Meet / deploy (push) Successful in 1m3s

Block breakouts, chat, Q&A, and other meeting-only tools in spaces, hide video controls for audio-only rooms, and stabilize mobile nav and toolbar layout.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-04 00:25:40 +00:00
co-authored by Cursor
parent b087b7e95a
commit c51e59945e
10 changed files with 310 additions and 35 deletions
+41 -5
View File
@@ -221,6 +221,10 @@ function meetRoom() {
this.pollTimer = setInterval(() => this.poll(), 3000);
this.applyStageLayout();
this.$nextTick(() => {
document.querySelector('.meet-toolbar__track')?.classList.add('is-ready');
});
},
connectionErrorMessage(error) {
@@ -1687,6 +1691,10 @@ function meetRoom() {
},
async submitQuestion() {
if (this.isSpace) {
return;
}
const question = this.qaInput.trim();
if (!question || !this.config.qaUrl) return;
this.qaInput = '';
@@ -1698,14 +1706,14 @@ function meetRoom() {
},
async createBreakouts() {
if (!this.isHost || !this.config.breakoutsCreateUrl) return;
if (this.isSpace || !this.isHost || !this.config.breakoutsCreateUrl) return;
this.breakoutCount = '4';
this.breakoutModalOpen = true;
this.closeSidebar();
},
async submitBreakouts() {
if (!this.isHost || !this.config.breakoutsCreateUrl) return;
if (this.isSpace || !this.isHost || !this.config.breakoutsCreateUrl) return;
const count = parseInt(this.breakoutCount, 10);
if (!count || count < 1) return;
@@ -1725,7 +1733,7 @@ function meetRoom() {
},
async closeBreakouts() {
if (!this.isHost || !this.config.breakoutsCloseUrl) return;
if (this.isSpace || !this.isHost || !this.config.breakoutsCloseUrl) return;
await fetch(this.config.breakoutsCloseUrl, { method: 'POST', headers: this.headers() });
this.closeSidebar();
@@ -1734,6 +1742,10 @@ function meetRoom() {
},
async broadcastToBreakouts() {
if (this.isSpace) {
return;
}
const message = this.breakoutBroadcastInput.trim();
if (!this.isHost || !message || !this.config.breakoutsBroadcastUrl) {
return;
@@ -1855,10 +1867,18 @@ function meetRoom() {
},
toggleProgramme() {
if (this.isSpace) {
return;
}
this.toggleSidebarPanel('programme');
},
openUploadPicker() {
if (this.isSpace) {
return;
}
document.getElementById('meet-file-input')?.click();
this.closeSidebar();
},
@@ -1869,6 +1889,10 @@ function meetRoom() {
},
async toggleLockFromMenu() {
if (this.isSpace) {
return;
}
await this.toggleLock();
this.closeSidebar();
},
@@ -2112,10 +2136,14 @@ function meetRoom() {
},
showVideoControl() {
return this.canPublish && !this.audioOnlyPublish;
return this.canPublish && !this.audioOnly && !this.audioOnlyPublish;
},
showAudienceControls() {
if (this.isSpace) {
return !this.canPublish;
}
if (!this.usesSpeakAccess) {
return this.canPublish;
}
@@ -2123,8 +2151,12 @@ function meetRoom() {
return !this.canPublish || this.audioOnlyPublish;
},
/** Mobile primary toolbar — webinars/conferences only; meetings use More for extras. */
/** Mobile primary toolbar — webinars/conferences and audio room listeners. */
showPrimaryToolbarAudienceControls() {
if (this.isSpace) {
return !this.canPublish;
}
if (!this.usesSpeakAccess) {
return false;
}
@@ -2335,6 +2367,10 @@ function meetRoom() {
},
toggleChat() {
if (this.isSpace) {
return;
}
this.toggleSidebarPanel('chat');
},