Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

actions.native.ts 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { IStore } from '../app/types';
  2. import { doGetJSON } from '../base/util/httpUtils';
  3. import { UNSET_DYNAMIC_BRANDING } from './actionTypes';
  4. import {
  5. setDynamicBrandingData,
  6. setDynamicBrandingFailed,
  7. setDynamicBrandingReady
  8. } from './actions.any';
  9. import { getDynamicBrandingUrl } from './functions.any';
  10. import logger from './logger';
  11. /**
  12. * Fetches custom branding data.
  13. * If there is no data or the request fails, sets the `customizationReady` flag
  14. * so the defaults can be displayed.
  15. *
  16. * @returns {Function}
  17. */
  18. export function fetchCustomBrandingData() {
  19. return async function(dispatch: IStore['dispatch'], getState: IStore['getState']) {
  20. const state = getState();
  21. const dynamicBrandingUrl = await getDynamicBrandingUrl(state);
  22. if (dynamicBrandingUrl) {
  23. try {
  24. return dispatch(
  25. setDynamicBrandingData(
  26. await doGetJSON(dynamicBrandingUrl))
  27. );
  28. } catch (err) {
  29. logger.error('Error fetching branding data', err);
  30. return dispatch(
  31. setDynamicBrandingFailed()
  32. );
  33. }
  34. } else {
  35. dispatch(unsetDynamicBranding());
  36. }
  37. dispatch(setDynamicBrandingReady());
  38. };
  39. }
  40. /**
  41. * Action used to unset branding elements.
  42. *
  43. * @returns {Object}
  44. */
  45. export function unsetDynamicBranding() {
  46. return {
  47. type: UNSET_DYNAMIC_BRANDING
  48. };
  49. }