SumOfUs/Champaign

View on GitHub
app/javascript/packs/globals.js

Summary

Maintainability
A
0 mins
Test Coverage
import _ from 'lodash';
import 'core-js/stable';
import 'regenerator-runtime/runtime';
import 'intl';
import 'intl/locale-data/jsonp/en.js';
import 'intl/locale-data/jsonp/de.js';
import 'intl/locale-data/jsonp/fr.js';
import 'intl/locale-data/jsonp/pt.js';
import 'intl/locale-data/jsonp/nl.js';
import 'intl/locale-data/jsonp/ar.js';
import ee from '../shared/pub_sub';
import flatten from 'flat';
require('jquery-sticky');
require('selectize/dist/css/selectize.css');

window._ = _;

function $subscribe(eventName, callback) {
  // to maintain backwards compatibility, jQuery events always
  // pass the event object as the first parameter. We don't have it
  const compatibleCallback = function(...args) {
    callback(this, ...args);
  };
  ee.on(eventName, compatibleCallback);
}

function $publish(eventName, ...args) {
  ee.emit(eventName, ...args);
}

_.extend(window.$, {
  publish: $publish,
  subscribe: $subscribe,
});

if (!window.ee) window.ee = ee;

if (window.I18n && window.I18n.translations) {
  window.I18n.flatTranslations = _.mapValues(
    window.I18n.translations,
    (value, key) =>
      flatten(
        _.pick(value, [
          'double_opt_in',
          'footer',
          'page',
          'basics',
          'branding',
          'recommend_pages',
          'email_pension',
          'email_tool',
          'fundraiser',
          'petition',
          'form',
          'thermometer',
          'call_tool',
          'share',
          'errors',
          'validation',
          'time',
          'reset_passwords',
          'survey',
          'reset_password_mailer',
          'facebook_share',
          'member_registration',
          'confirmation_mailer',
          'consent',
          'cookie_consent',
        ])
      )
  );
}