From 22a675e91599aba43b5cbfc0e905402844066f00 Mon Sep 17 00:00:00 2001 From: John Livingston Date: Wed, 27 Dec 2023 15:51:43 +0100 Subject: [PATCH] WIP new full screen chat --- assets/styles/style.scss | 8 ++++++++ client/common/configuration/register.ts | 12 ++++++++---- conversejs/builtin.ts | 7 ++++++- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/assets/styles/style.scss b/assets/styles/style.scss index f3f57015..5085b146 100644 --- a/assets/styles/style.scss +++ b/assets/styles/style.scss @@ -169,3 +169,11 @@ table.peertube-plugin-livechat-prosody-list-rooms td { min-height: 60px; } } + +.livechat-embed-fullpage { + converse-root { + display: block; + height: 90vh; + min-height: 400px; + } +} diff --git a/client/common/configuration/register.ts b/client/common/configuration/register.ts index 1d77316f..c917429b 100644 --- a/client/common/configuration/register.ts +++ b/client/common/configuration/register.ts @@ -39,11 +39,15 @@ async function registerConfiguration (clientOptions: RegisterClientOptions): Pro const converseJSParams: InitConverseJSParams = await (response).json() await loadConverseJS(converseJSParams) - rootEl.innerHTML = `
-
-
` + const container = document.createElement('div') + container.classList.add('margin-content') + container.classList.add('livechat-embed-fullpage') + rootEl.append(container) + const converseRoot = document.createElement('converse-root') + converseRoot.classList.add('theme-peertube') + container.append(converseRoot) - window.initConverse(converseJSParams) + window.initConverse(converseJSParams, 'embedded') } catch (err) { console.error('[peertube-plugin-livechat] ' + (err as string)) rootEl.innerText = await peertubeHelpers.translate(LOC_NOT_FOUND) diff --git a/conversejs/builtin.ts b/conversejs/builtin.ts index 2e065e5e..62a88dc3 100644 --- a/conversejs/builtin.ts +++ b/conversejs/builtin.ts @@ -24,7 +24,10 @@ declare global { } } -window.initConverse = async function initConverse (initConverseParams: InitConverseJSParams): Promise { +window.initConverse = async function initConverse ( + initConverseParams: InitConverseJSParams, + viewMode: 'fullscreen' | 'embedded' = 'fullscreen' +): Promise { // First, fixing relative websocket urls. if (initConverseParams.localWebsocketServiceUrl?.startsWith('/')) { initConverseParams.localWebsocketServiceUrl = new URL( @@ -47,6 +50,8 @@ window.initConverse = async function initConverse (initConverseParams: InitConve const isInIframe = inIframe() initDom(initConverseParams, isInIframe) const params = defaultConverseParams(initConverseParams, isInIframe) + params.view_mode = viewMode + params.allow_url_history_change = viewMode === 'fullscreen' let isAuthenticated: boolean = false let isRemoteWithNicknameSet: boolean = false