1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.LanguagePicker = undefined;
|
7 |
|
8 | var _regenerator = require('babel-runtime/regenerator');
|
9 |
|
10 | var _regenerator2 = _interopRequireDefault(_regenerator);
|
11 |
|
12 | var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
|
13 |
|
14 | var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
|
15 |
|
16 | var _extends2 = require('babel-runtime/helpers/extends');
|
17 |
|
18 | var _extends3 = _interopRequireDefault(_extends2);
|
19 |
|
20 | var _react = require('react');
|
21 |
|
22 | var _react2 = _interopRequireDefault(_react);
|
23 |
|
24 | var _propTypes = require('prop-types');
|
25 |
|
26 | var _propTypes2 = _interopRequireDefault(_propTypes);
|
27 |
|
28 | var _recompose = require('recompose');
|
29 |
|
30 | var _helperFunctions = require('./helperFunctions');
|
31 |
|
32 | var _defaultStyles = require('./defaultStyles');
|
33 |
|
34 | var _settings = require('./utilities/settings');
|
35 |
|
36 | var _CTCPopover = require('./CTCPopover');
|
37 |
|
38 | var _CTCPopover2 = _interopRequireDefault(_CTCPopover);
|
39 |
|
40 | var _Button = require('./Button');
|
41 |
|
42 | var _Button2 = _interopRequireDefault(_Button);
|
43 |
|
44 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
45 |
|
46 |
|
47 |
|
48 | var LanguagePicker = exports.LanguagePicker = function LanguagePicker(_ref) {
|
49 | var languages = _ref.languages,
|
50 | setActiveLanguage = _ref.setActiveLanguage,
|
51 | activeLanguage = _ref.activeLanguage,
|
52 | style = _ref.style,
|
53 | _ref$styleTemplate = _ref.styleTemplate,
|
54 | styleTemplate = _ref$styleTemplate === undefined ? 'default' : _ref$styleTemplate,
|
55 | callback = _ref.callback;
|
56 |
|
57 | var styles = styleTemplate ? _defaultStyles.languagePickerTemplates[styleTemplate] : _defaultStyles.languagePickerTemplates['none'];
|
58 | return _react2.default.createElement(
|
59 | _CTCPopover2.default,
|
60 | {
|
61 | className: 'languagepicker__container',
|
62 | style: style,
|
63 | renderTrigger: function renderTrigger(_ref2) {
|
64 | var getTriggerProps = _ref2.getTriggerProps;
|
65 | return _react2.default.createElement(_Button2.default, getTriggerProps({
|
66 | className: 'languagepicker__trigger',
|
67 | style: (0, _extends3.default)({}, styles.trigger, {
|
68 | backgroundImage: 'url(\'' + _settings.flags[activeLanguage] + '\')'
|
69 | })
|
70 | }));
|
71 | }
|
72 | },
|
73 | function (_ref3) {
|
74 | var toggleIsOn = _ref3.toggleIsOn,
|
75 | getChildrenProps = _ref3.getChildrenProps;
|
76 | return _react2.default.createElement(
|
77 | 'div',
|
78 | (0, _extends3.default)({}, getChildrenProps({
|
79 | className: 'languagepicker__children',
|
80 | style: (0, _extends3.default)({}, styles.children)
|
81 | })),
|
82 | languages.map(function (language) {
|
83 | return _react2.default.createElement(_Button2.default, {
|
84 | colors: _defaultStyles.buttonStyles.verdant,
|
85 | isOn: activeLanguage === language.code,
|
86 | key: language.code,
|
87 | style: (0, _extends3.default)({}, styles.item, {
|
88 | backgroundImage: 'url(\'' + _settings.flags[language.code] + '\')'
|
89 | }),
|
90 | className: '' + (0, _helperFunctions.flippyClass)(activeLanguage === language.code, 'languagepicker__item', 'active', 'inactive'),
|
91 | onClick: function () {
|
92 | var _ref4 = (0, _asyncToGenerator3.default)( _regenerator2.default.mark(function _callee() {
|
93 | return _regenerator2.default.wrap(function _callee$(_context) {
|
94 | while (1) {
|
95 | switch (_context.prev = _context.next) {
|
96 | case 0:
|
97 | _context.next = 2;
|
98 | return setActiveLanguage(language.code);
|
99 |
|
100 | case 2:
|
101 | if (!callback) {
|
102 | _context.next = 5;
|
103 | break;
|
104 | }
|
105 |
|
106 | _context.next = 5;
|
107 | return callback(language.code);
|
108 |
|
109 | case 5:
|
110 | toggleIsOn();
|
111 |
|
112 | case 6:
|
113 | case 'end':
|
114 | return _context.stop();
|
115 | }
|
116 | }
|
117 | }, _callee, undefined);
|
118 | }));
|
119 |
|
120 | function onClick() {
|
121 | return _ref4.apply(this, arguments);
|
122 | }
|
123 |
|
124 | return onClick;
|
125 | }()
|
126 | });
|
127 | })
|
128 | );
|
129 | }
|
130 | );
|
131 | };
|
132 |
|
133 | LanguagePicker.propTypes = {
|
134 | languages: _propTypes2.default.array.isRequired,
|
135 | activeLanguage: _propTypes2.default.string.isRequired,
|
136 | setActiveLanguage: _propTypes2.default.func.isRequired
|
137 | };
|
138 |
|
139 | var enhance = (0, _recompose.compose)((0, _recompose.onlyUpdateForKeys)(['activeLanguage']));
|
140 |
|
141 |
|
142 | exports.default = enhance(LanguagePicker); |
\ | No newline at end of file |