UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com's products.

51 lines (50 loc) 1.88 kB
"use strict"; "use client"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; exports.__esModule = true; exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _clsx = _interopRequireDefault(require("clsx")); var _consts = require("./consts"); function getCountryProps(code) { const codeNormalized = code ? code.toUpperCase().replace("-", "_") : "UNDEFINED"; const countryCodeExists = (codeNormalized in _consts.CODES); if (!countryCodeExists) console.warn(`Country code not supported: ${code}`); const countryCode = countryCodeExists ? _consts.CODES[codeNormalized] : _consts.CODES.UNDEFINED; return { code: countryCode }; } const CountryFlag = ({ dataTest, size = _consts.SIZES.MEDIUM, id, role, name = "", ...props }) => { const { code } = getCountryProps(props.code); const width = _consts.SIZE_WIDTHS[size]; const src = `${_consts.baseURL}/flags/${width}x0/flag-${code.toLowerCase()}.jpg`; const srcSet = `${_consts.baseURL}/flags/${width * 2}x0/flag-${code.toLowerCase()}.jpg 2x`; return /*#__PURE__*/_react.default.createElement("div", { className: (0, _clsx.default)("orbit-country-flag", "rounded-50 bg-country-flag-background relative shrink-0 overflow-hidden", { "h-country-flag-small w-country-flag-small": size === _consts.SIZES.SMALL, "h-country-flag-medium w-country-flag-medium": size === _consts.SIZES.MEDIUM }) }, /*#__PURE__*/_react.default.createElement("img", { className: "block size-full shrink-0", key: code, alt: name, id: id, "data-test": dataTest, src: src, srcSet: srcSet, role: role }), /*#__PURE__*/_react.default.createElement("div", { className: "rounded-50 shadow-country-flag absolute inset-0 block size-full" })); }; var _default = exports.default = CountryFlag;