fix(branding): Use config url for dynamic branding

This commit is contained in:
Vlad Piersec 2020-12-11 12:16:58 +02:00 committed by Saúl Ibarra Corretgé
parent 27d41604df
commit 33e4324f6d
3 changed files with 27 additions and 6 deletions
config.js
react/features/dynamic-branding

View File

@ -616,7 +616,7 @@ var config = {
logoImageUrl: 'https://example.com/logo-img.png'
}
*/
// brandingDataUrl: '',
// dynamicBrandingUrl: '',
// The URL of the moderated rooms microservice, if available. If it
// is present, a link to the service will be rendered on the welcome page,

View File

@ -9,10 +9,11 @@ import {
SET_DYNAMIC_BRANDING_FAILED,
SET_DYNAMIC_BRANDING_READY
} from './actionTypes';
import { extractFqnFromPath } from './functions';
import { getDynamicBrandingUrl } from './functions';
const logger = getLogger(__filename);
/**
* Fetches custom branding data.
* If there is no data or the request fails, sets the `customizationReady` flag
@ -23,15 +24,14 @@ const logger = getLogger(__filename);
export function fetchCustomBrandingData() {
return async function(dispatch: Function, getState: Function) {
const state = getState();
const baseUrl = state['features/base/config'].brandingDataUrl;
const { customizationReady } = state['features/dynamic-branding'];
if (!customizationReady) {
const fqn = extractFqnFromPath(state['features/base/connection'].locationURL.pathname);
const url = getDynamicBrandingUrl(state);
if (baseUrl && fqn) {
if (url) {
try {
const res = await doGetJSON(`${baseUrl}?conferenceFqn=${encodeURIComponent(fqn)}`);
const res = await doGetJSON(url);
return dispatch(setDynamicBrandingData(res));
} catch (err) {

View File

@ -13,3 +13,24 @@ export function extractFqnFromPath(path: string) {
return parts.length > 2 ? `${parts[len - 2]}/${parts[len - 1]}` : '';
}
/**
* Returns the url used for fetching dynamic branding.
*
* @param {Object} state - The state of the app.
* @returns {string}
*/
export function getDynamicBrandingUrl(state: Object) {
const { dynamicBrandingUrl } = state['features/base/config'];
if (dynamicBrandingUrl) {
return dynamicBrandingUrl;
}
const baseUrl = state['features/base/config'].brandingDataUrl;
const fqn = extractFqnFromPath(state['features/base/connection'].locationURL.pathname);
if (baseUrl && fqn) {
return `${baseUrl}?conferenceFqn=${encodeURIComponent(fqn)}`;
}
}