91 lines
3.7 KiB
JavaScript
91 lines
3.7 KiB
JavaScript
"use strict";
|
|
(globalThis["webpackChunktinode_webapp"] = globalThis["webpackChunktinode_webapp"] || []).push([["src_widgets_phone-country-selector_jsx"],{
|
|
|
|
/***/ "./src/widgets/phone-country-selector.jsx":
|
|
/*!************************************************!*\
|
|
!*** ./src/widgets/phone-country-selector.jsx ***!
|
|
\************************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
/* harmony export */ });
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-intl */ "react-intl");
|
|
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_1__);
|
|
/* harmony import */ var _dcodes_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dcodes.json */ "./src/dcodes.json");
|
|
/* harmony import */ var _lib_strformat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/strformat */ "./src/lib/strformat.js");
|
|
|
|
|
|
|
|
|
|
class PhoneCountrySelector extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureComponent) {
|
|
constructor(props) {
|
|
super(props);
|
|
this.countries = [];
|
|
const {
|
|
formatDisplayName
|
|
} = props.intl;
|
|
_dcodes_json__WEBPACK_IMPORTED_MODULE_2__.forEach(dc => {
|
|
const parts = dc.dial.split(',');
|
|
parts.forEach(part => {
|
|
this.countries.push({
|
|
dial: part.trim(),
|
|
code: dc.code,
|
|
flag: (0,_lib_strformat__WEBPACK_IMPORTED_MODULE_3__.flagEmoji)(dc.code),
|
|
name: formatDisplayName(dc.code, {
|
|
type: 'region'
|
|
})
|
|
});
|
|
});
|
|
});
|
|
this.countries.sort((a, b) => a.name.localeCompare(b.name));
|
|
}
|
|
componentDidMount() {
|
|
if (this.selectedRef) {
|
|
this.selectedRef.scrollIntoView({
|
|
block: 'center',
|
|
inline: 'nearest'
|
|
});
|
|
}
|
|
}
|
|
render() {
|
|
const countries = [];
|
|
const selected = this.props.selected || 'US';
|
|
this.countries.forEach((c, idx) => {
|
|
const style = c.code == selected ? 'selected ' : '';
|
|
countries.push(react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", {
|
|
className: style,
|
|
key: idx,
|
|
ref: ref => {
|
|
if (c.code == selected) {
|
|
this.selectedRef = ref;
|
|
}
|
|
},
|
|
onClick: _ => this.props.onSubmit(c.code, c.dial)
|
|
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
|
|
className: "country-flag"
|
|
}, c.flag), react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
|
|
className: "country"
|
|
}, "\xA0", c.name), react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
|
|
className: "dial-code"
|
|
}, "\xA0+", c.dial)));
|
|
});
|
|
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
className: "scrollable-panel",
|
|
style: {
|
|
height: '30rem'
|
|
}
|
|
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
|
|
className: "phone-country-selector"
|
|
}, countries));
|
|
}
|
|
}
|
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_intl__WEBPACK_IMPORTED_MODULE_1__.injectIntl)(PhoneCountrySelector));
|
|
|
|
/***/ })
|
|
|
|
}]);
|
|
//# sourceMappingURL=src_widgets_phone-country-selector_jsx.dev.js.map
|