@heycar-uikit/core
Version:
The React UI library from HeyCar
32 lines (28 loc) • 1.95 kB
JavaScript
import React from 'react';
import Typography from '../../../typography';
import { LANG_OPTIONS } from '../constants/Header.constants.js';
import { getFlagIcon } from '../utils/headerItemHelpers.js';
import '../tslib.es6-4ac54363.js';
import '../../../icons';
var styles = {"languageList":"header__languageList_1jqt2"};
var LanguageList = React.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 ? LANG_OPTIONS : _b, trackingFn = _a.trackingFn;
return (React.createElement("div", { className: styles.languageList, "data-test-id": dataTestId, onMouseOut: function () { return onHoverEvents(false); }, onMouseOver: function () { return onHoverEvents(true); }, ref: ref, role: "menu" },
React.createElement(Typography, { variant: "subheading1" }, heading),
React.createElement("ul", null, options.map(function (langItem) {
var Icon = getFlagIcon(langItem.langCode);
return (React.createElement("li", { key: langItem.langCode, role: "menuitem" },
React.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.createElement(Typography, { variant: "button3" }, langItem.label))));
}))));
});
export { LanguageList as default };