fix(rmeets): use Jitsi External API by default, clean up toolbar buttons

Switch default room view to External API (cleaner toolbar, no stray
close buttons). Slim toolbar to essentials, disable participant pane
overlay. Fall back to iframe embed with ?iframe=1.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-03-23 12:11:00 -07:00
parent 1930d7dab0
commit 0c04d6bee1
2 changed files with 19 additions and 14 deletions

View File

@ -113,16 +113,20 @@ class FolkJitsiRoom extends HTMLElement {
disableDeepLinking: true,
hideConferenceSubject: false,
toolbarButtons: [
"camera", "chat", "closedcaptions", "desktop",
"fullscreen", "hangup", "microphone", "participants-pane",
"raisehand", "select-background", "settings",
"tileview", "toggle-camera",
"camera", "microphone", "desktop", "hangup",
"raisehand", "tileview", "toggle-camera",
"fullscreen", "select-background",
],
// Hide panels that add stray close (×) buttons
disableChat: false,
participantsPane: { enabled: false },
},
interfaceConfigOverwrite: {
SHOW_JITSI_WATERMARK: false,
SHOW_WATERMARK_FOR_GUESTS: false,
SHOW_BRAND_WATERMARK: false,
CLOSE_PAGE_GUEST_HINT: false,
SHOW_PROMOTIONAL_CLOSE_PAGE: false,
},
});

View File

@ -104,30 +104,31 @@ const MI_STYLES = `<style>
routes.get("/room/:room", (c) => {
const space = c.req.param("space") || "demo";
const room = c.req.param("room");
const useApi = c.req.query("api") === "1";
const director = c.req.query("director") === "1";
const sessionId = c.req.query("session") || "";
if (useApi) {
const director = c.req.query("director") === "1";
const sessionId = c.req.query("session") || "";
return c.html(renderShell({
// Use Jitsi External API by default (cleaner toolbar, no stray close buttons).
// Pass ?iframe=1 to fall back to raw iframe embed.
if (c.req.query("iframe") === "1") {
return c.html(renderExternalAppShell({
title: `${room} — rMeets | rSpace`,
moduleId: "rmeets",
spaceSlug: space,
modules: getModuleInfoList(),
appUrl: `${JITSI_URL}/${encodeURIComponent(room)}`,
appName: "Jitsi Meet",
theme: "dark",
body: `<folk-jitsi-room room="${escapeHtml(room)}" jitsi-url="${escapeHtml(JITSI_URL)}" space="${escapeHtml(space)}"${director ? ` director="1" session="${escapeHtml(sessionId)}"` : ""}></folk-jitsi-room>`,
scripts: `<script type="module" src="/modules/rmeets/components/folk-jitsi-room.js"></script>`,
}));
}
return c.html(renderExternalAppShell({
return c.html(renderShell({
title: `${room} — rMeets | rSpace`,
moduleId: "rmeets",
spaceSlug: space,
modules: getModuleInfoList(),
appUrl: `${JITSI_URL}/${encodeURIComponent(room)}`,
appName: "Jitsi Meet",
theme: "dark",
body: `<folk-jitsi-room room="${escapeHtml(room)}" jitsi-url="${escapeHtml(JITSI_URL)}" space="${escapeHtml(space)}"${director ? ` director="1" session="${escapeHtml(sessionId)}"` : ""}></folk-jitsi-room>`,
scripts: `<script type="module" src="/modules/rmeets/components/folk-jitsi-room.js"></script>`,
}));
});