Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

actions.js 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // @flow
  2. import { getLogger } from 'jitsi-meet-logger';
  3. import { doGetJSON } from '../base/util';
  4. import { SET_DYNAMIC_BRANDING_DATA, SET_DYNAMIC_BRANDING_READY } from './actionTypes';
  5. import { extractFqnFromPath } from './functions';
  6. const logger = getLogger(__filename);
  7. /**
  8. * Fetches custom branding data.
  9. * If there is no data or the request fails, sets the `customizationReady` flag
  10. * so the defaults can be displayed.
  11. *
  12. * @returns {Function}
  13. */
  14. export function fetchCustomBrandingData() {
  15. return async function(dispatch: Function, getState: Function) {
  16. const state = getState();
  17. const baseUrl = state['features/base/config'].brandingDataUrl;
  18. const { customizationReady } = state['features/dynamic-branding'];
  19. if (!customizationReady) {
  20. const fqn = extractFqnFromPath(state['features/base/connection'].locationURL.pathname);
  21. if (baseUrl && fqn) {
  22. try {
  23. const res = await doGetJSON(`${baseUrl}?conferenceFqn=${encodeURIComponent(fqn)}`);
  24. return dispatch(setDynamicBrandingData(res));
  25. } catch (err) {
  26. logger.error('Error fetching branding data', err);
  27. }
  28. }
  29. dispatch(setDynamicBrandingReady());
  30. }
  31. };
  32. }
  33. /**
  34. * Action used to set the user customizations.
  35. *
  36. * @param {Object} value - The custom data to be set.
  37. * @returns {Object}
  38. */
  39. function setDynamicBrandingData(value) {
  40. return {
  41. type: SET_DYNAMIC_BRANDING_DATA,
  42. value
  43. };
  44. }
  45. /**
  46. * Action used to signal the branding elements are ready to be displayed.
  47. *
  48. * @returns {Object}
  49. */
  50. function setDynamicBrandingReady() {
  51. return {
  52. type: SET_DYNAMIC_BRANDING_READY
  53. };
  54. }