@heycar-uikit/core
Version:
The React UI library from HeyCar
37 lines (32 loc) • 2.55 kB
JavaScript
var React = require('react');
var Typography = require('../../../typography/cssm');
var constants_Header_constants = require('../constants/Header.constants.js');
var utils_headerItemHelpers = require('../utils/headerItemHelpers.js');
var styles = require('../styles/languageList.module.css');
require('../tslib.es6-0efb545c.js');
require('../../../icons/cssm');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
var LanguageList = React__default["default"].forwardRef(function (_a, ref) {
var dataTestId = _a.dataTestId, heading = _a.heading, itemOnClick = _a.itemOnClick, onFocusEvents = _a.onFocusEvents, onHoverEvents = _a.onHoverEvents, _b = _a.options, options = _b === void 0 ? constants_Header_constants.LANG_OPTIONS : _b, trackingFn = _a.trackingFn;
return (React__default["default"].createElement("div", { className: styles__default["default"].languageList, "data-test-id": dataTestId, onMouseOut: function () { return onHoverEvents(false); }, onMouseOver: function () { return onHoverEvents(true); }, ref: ref, role: "menu" },
React__default["default"].createElement(Typography__default["default"], { variant: "subheading1" }, heading),
React__default["default"].createElement("ul", null, options.map(function (langItem) {
var Icon = utils_headerItemHelpers.getFlagIcon(langItem.langCode);
return (React__default["default"].createElement("li", { key: langItem.langCode, role: "menuitem" },
React__default["default"].createElement("a", { "aria-label": langItem.label + " language select", href: langItem.href, onBlur: function () { return onFocusEvents(false); }, onClick: function () {
return itemOnClick({
fn: trackingFn,
obj: {
label: langItem.label + " language select",
href: langItem.href,
},
}, langItem.onClick);
}, onFocus: function () { return onFocusEvents(true); } },
Icon,
React__default["default"].createElement(Typography__default["default"], { variant: "button3" }, langItem.label))));
}))));
});
module.exports = LanguageList;