UNPKG

4.73 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.LanguagePicker = undefined;
7
8var _regenerator = require('babel-runtime/regenerator');
9
10var _regenerator2 = _interopRequireDefault(_regenerator);
11
12var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
13
14var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
15
16var _extends2 = require('babel-runtime/helpers/extends');
17
18var _extends3 = _interopRequireDefault(_extends2);
19
20var _react = require('react');
21
22var _react2 = _interopRequireDefault(_react);
23
24var _propTypes = require('prop-types');
25
26var _propTypes2 = _interopRequireDefault(_propTypes);
27
28var _recompose = require('recompose');
29
30var _helperFunctions = require('./helperFunctions');
31
32var _defaultStyles = require('./defaultStyles');
33
34var _settings = require('./utilities/settings');
35
36var _CTCPopover = require('./CTCPopover');
37
38var _CTCPopover2 = _interopRequireDefault(_CTCPopover);
39
40var _Button = require('./Button');
41
42var _Button2 = _interopRequireDefault(_Button);
43
44function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
45
46// noinvert button style
47
48var 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)( /*#__PURE__*/_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
133LanguagePicker.propTypes = {
134 languages: _propTypes2.default.array.isRequired,
135 activeLanguage: _propTypes2.default.string.isRequired,
136 setActiveLanguage: _propTypes2.default.func.isRequired
137};
138
139var enhance = (0, _recompose.compose)((0, _recompose.onlyUpdateForKeys)(['activeLanguage']));
140//
141
142exports.default = enhance(LanguagePicker);
\No newline at end of file