react-phone-number-input
Version:
Telephone number input React component
53 lines (49 loc) • 1.9 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import DefaultInternationalIcon from './InternationalIcon';
import Flag from './Flag';
export function createCountryIconComponent(_ref) {
var flags = _ref.flags,
flagUrl = _ref.flagUrl,
FlagComponent = _ref.flagComponent,
InternationalIcon = _ref.internationalIcon;
function CountryIcon(_ref2) {
var country = _ref2.country,
label = _ref2.label,
aspectRatio = _ref2.aspectRatio;
// `aspectRatio` is currently a hack for the default "International" icon
// to render it as a square when Unicode flag icons are used.
// So `aspectRatio` property is only used with the default "International" icon.
var _aspectRatio = InternationalIcon === DefaultInternationalIcon ? aspectRatio : undefined;
return React.createElement("div", {
className: classNames('PhoneInputCountryIcon', {
'PhoneInputCountryIcon--square': _aspectRatio === 1,
'PhoneInputCountryIcon--border': country
})
}, country ? React.createElement(FlagComponent, {
country: country,
countryName: label,
flags: flags,
flagUrl: flagUrl,
className: "PhoneInputCountryIconImg"
}) : React.createElement(InternationalIcon, {
title: label,
aspectRatio: _aspectRatio,
className: "PhoneInputCountryIconImg"
}));
}
CountryIcon.propTypes = {
country: PropTypes.string,
label: PropTypes.string.isRequired,
aspectRatio: PropTypes.number
};
return CountryIcon;
}
export default createCountryIconComponent({
// Must be equal to `defaultProps.flagUrl` in `./PhoneInputWithCountry.js`.
flagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',
flagComponent: Flag,
internationalIcon: DefaultInternationalIcon
});
//# sourceMappingURL=CountryIcon.js.map