You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

functions.js 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // @flow
  2. import { loadConfig } from '../base/lib-jitsi-meet';
  3. /**
  4. * Extracts the fqn part from a path, where fqn represents
  5. * tenant/roomName.
  6. *
  7. * @param {string} path - The URL path.
  8. * @returns {string}
  9. */
  10. export function extractFqnFromPath() {
  11. const parts = window.location.pathname.split('/');
  12. const len = parts.length;
  13. return parts.length > 2 ? `${parts[len - 2]}/${parts[len - 1]}` : '';
  14. }
  15. /**
  16. * Returns the url used for fetching dynamic branding.
  17. *
  18. * @returns {string}
  19. */
  20. export async function getDynamicBrandingUrl() {
  21. const config = await loadConfig(window.location.href);
  22. const { dynamicBrandingUrl } = config;
  23. if (dynamicBrandingUrl) {
  24. return dynamicBrandingUrl;
  25. }
  26. const { brandingDataUrl: baseUrl } = config;
  27. const fqn = extractFqnFromPath();
  28. if (baseUrl && fqn) {
  29. return `${baseUrl}?conferenceFqn=${encodeURIComponent(fqn)}`;
  30. }
  31. }
  32. /**
  33. * Selector used for getting the load state of the dynamic branding data.
  34. *
  35. * @param {Object} state - Global state of the app.
  36. * @returns {boolean}
  37. */
  38. export function isDynamicBrandingDataLoaded(state: Object) {
  39. return state['features/dynamic-branding'].customizationReady;
  40. }