From d33795f7a11baf7ef047c542bcb0d3db260213ea Mon Sep 17 00:00:00 2001 From: John Livingston Date: Tue, 1 Aug 2023 17:01:09 +0200 Subject: [PATCH] Code refactoring WIP: Cleaning the way ConverseJS parameters are given to the full page. --- conversejs/builtin.ts | 6 ++-- conversejs/index.html | 21 ++---------- conversejs/lib/converse-params.ts | 24 ++++++++------ conversejs/lib/dom.ts | 4 +-- conversejs/lib/types.ts | 23 ------------- server/lib/routers/webchat.ts | 54 ++++++++++++++++--------------- shared/lib/types.ts | 20 ++++++++++++ 7 files changed, 71 insertions(+), 81 deletions(-) delete mode 100644 conversejs/lib/types.ts diff --git a/conversejs/builtin.ts b/conversejs/builtin.ts index f4e44927..d9fcf0fe 100644 --- a/conversejs/builtin.ts +++ b/conversejs/builtin.ts @@ -1,4 +1,4 @@ -import type { InitConverseParams } from './lib/types' +import type { InitConverseJSParams } from 'shared/lib/types' import { inIframe } from './lib/utils' import { initDom } from './lib/dom' import { @@ -19,11 +19,11 @@ declare global { add: (name: string, plugin: any) => void } } - initConverse: (args: InitConverseParams) => Promise + initConverse: (args: InitConverseJSParams) => Promise } } -window.initConverse = async function initConverse (initConverseParams: InitConverseParams): Promise { +window.initConverse = async function initConverse (initConverseParams: InitConverseJSParams): Promise { // First, fixing relative websocket urls. if (initConverseParams.localWebsocketServiceUrl?.startsWith('/')) { initConverseParams.localWebsocketServiceUrl = new URL( diff --git a/conversejs/index.html b/conversejs/index.html index 1063191f..db7af1be 100644 --- a/conversejs/index.html +++ b/conversejs/index.html @@ -14,24 +14,9 @@
diff --git a/conversejs/lib/converse-params.ts b/conversejs/lib/converse-params.ts index e650762a..87be89e6 100644 --- a/conversejs/lib/converse-params.ts +++ b/conversejs/lib/converse-params.ts @@ -1,4 +1,4 @@ -import type { InitConverseParams } from './types' +import type { InitConverseJSParams } from 'shared/lib/types' import type { AuthentInfos } from './auth' /** @@ -9,7 +9,7 @@ import type { AuthentInfos } from './auth' * @returns default parameters to provide to ConverseJS. */ function defaultConverseParams ( - { forceReadonly, theme, assetsPath, room }: InitConverseParams, + { forceReadonly, theme, assetsPath, room }: InitConverseJSParams, isInIframe: boolean ): any { const mucShowInfoMessages = forceReadonly @@ -96,7 +96,10 @@ function defaultConverseParams ( * @param auth authent infos. * @param params ConverseJS parameters to fill */ -function localRoomAuthenticatedParams (initConverseParams: InitConverseParams, auth: AuthentInfos, params: any): void { +function localRoomAuthenticatedParams ( + initConverseParams: InitConverseJSParams, + auth: AuthentInfos, params: any +): void { _fillAuthenticatedParams(initConverseParams, auth, params) _fillLocalProtocols(initConverseParams, params) } @@ -106,7 +109,7 @@ function localRoomAuthenticatedParams (initConverseParams: InitConverseParams, a * @param initConverseParams global parameters * @param params ConverseJS parameters to fill */ -function localRoomAnonymousParams (initConverseParams: InitConverseParams, params: any): void { +function localRoomAnonymousParams (initConverseParams: InitConverseJSParams, params: any): void { params.jid = initConverseParams.localAnonymousJID _fillLocalProtocols(initConverseParams, params) } @@ -117,7 +120,10 @@ function localRoomAnonymousParams (initConverseParams: InitConverseParams, param * @param auth authent infos. * @param params ConverseJS parameters to fill */ -function remoteRoomAuthenticatedParams (initConverseParams: InitConverseParams, auth: AuthentInfos, params: any): void { +function remoteRoomAuthenticatedParams ( + initConverseParams: InitConverseJSParams, + auth: AuthentInfos, params: any +): void { _fillAuthenticatedParams(initConverseParams, auth, params) _fillLocalProtocols(initConverseParams, params) } @@ -129,7 +135,7 @@ function remoteRoomAuthenticatedParams (initConverseParams: InitConverseParams, * @param params ConverseJS parameters to fill */ function remoteRoomAnonymousParams ( - initConverseParams: InitConverseParams, + initConverseParams: InitConverseJSParams, auth: AuthentInfos | null, params: any ): void { @@ -140,7 +146,7 @@ function remoteRoomAnonymousParams ( _fillRemoteProtocols(initConverseParams, params) } -function _fillAuthenticatedParams (initConverseParams: InitConverseParams, auth: AuthentInfos, params: any): void { +function _fillAuthenticatedParams (initConverseParams: InitConverseJSParams, auth: AuthentInfos, params: any): void { params.authentication = 'login' params.auto_login = true params.jid = auth.jid @@ -155,12 +161,12 @@ function _fillAuthenticatedParams (initConverseParams: InitConverseParams, auth: // FIXME: use params.oauth_providers? } -function _fillLocalProtocols (initConverseParams: InitConverseParams, params: any): void { +function _fillLocalProtocols (initConverseParams: InitConverseJSParams, params: any): void { params.bosh_service_url = initConverseParams.localBoshServiceUrl params.websocket_url = initConverseParams.localWebsocketServiceUrl } -function _fillRemoteProtocols (initConverseParams: InitConverseParams, params: any): void { +function _fillRemoteProtocols (initConverseParams: InitConverseJSParams, params: any): void { params.bosh_service_url = initConverseParams.remoteBoshServiceUrl params.websocket_url = initConverseParams.remoteWebsocketServiceUrl } diff --git a/conversejs/lib/dom.ts b/conversejs/lib/dom.ts index 6c8705dd..db947adc 100644 --- a/conversejs/lib/dom.ts +++ b/conversejs/lib/dom.ts @@ -1,6 +1,6 @@ -import type { InitConverseParams } from './types' +import type { InitConverseJSParams } from 'shared/lib/types' -function initDom ({ forceReadonly, transparent }: InitConverseParams, isInIframe: boolean): void { +function initDom ({ forceReadonly, transparent }: InitConverseJSParams, isInIframe: boolean): void { const body = document.querySelector('body') if (isInIframe) { if (body) { diff --git a/conversejs/lib/types.ts b/conversejs/lib/types.ts deleted file mode 100644 index 4751e2a1..00000000 --- a/conversejs/lib/types.ts +++ /dev/null @@ -1,23 +0,0 @@ -interface InitConverseParams { - isRemoteChat: boolean - localAnonymousJID: string - remoteAnonymousJID: string | null - remoteAnonymousXMPPServer: boolean - remoteAuthenticatedXMPPServer: boolean - assetsPath: string - room: string - localBoshServiceUrl: string | null - localWebsocketServiceUrl: string | null - remoteBoshServiceUrl: string | null - remoteWebsocketServiceUrl: string | null - authenticationUrl: string - autoViewerMode: boolean - forceReadonly: boolean | 'noscroll' - noScroll: boolean - theme: string - transparent: boolean -} - -export { - InitConverseParams -} diff --git a/server/lib/routers/webchat.ts b/server/lib/routers/webchat.ts index 76fd713d..a7bd6703 100644 --- a/server/lib/routers/webchat.ts +++ b/server/lib/routers/webchat.ts @@ -1,7 +1,8 @@ import type { RegisterServerOptions, MVideoThumbnail, SettingEntries } from '@peertube/peertube-types' import type { Router, Request, Response, NextFunction } from 'express' import type { - ProsodyListRoomsResult, ProsodyListRoomsResultRoom + ProsodyListRoomsResult, ProsodyListRoomsResultRoom, + InitConverseJSParams, ConverseJSTheme } from '../../../shared/lib/types' import { createProxyServer } from 'http-proxy' import { @@ -59,8 +60,8 @@ async function initWebchatRouter (options: RegisterServerOptionsV5): Promise