phone editing widget works

This commit is contained in:
or-else
2023-01-25 17:08:07 -08:00
parent 34f17f45b1
commit e2f3201ddb
32 changed files with 246 additions and 106 deletions
@@ -26,44 +26,45 @@ class PhoneCountrySelector extends (react__WEBPACK_IMPORTED_MODULE_0___default()
super(props);
this.countries = [];
const {
formattedDisplayName
formatDisplayName
} = props.intl;
_dcodes_json__WEBPACK_IMPORTED_MODULE_2__.forEach(dc => {
this.countries.push({
dial: dc.dial,
code: dc.code,
flag: (0,_lib_strformat__WEBPACK_IMPORTED_MODULE_3__.flagEmoji)(dc.code),
name: formattedDisplayName(dc.code, {
type: 'region'
})
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));
this.handleClick = this.handleClick.bind(this);
}
handleClick(e) {
e.preventDefault();
this.props.onSubmit(e.target.dataset.code, e.target.dataset.dial);
}
render() {
const countries = [];
const selected = this.props.selected || 'US';
this.countries.forEach(c => {
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,
"data-code": c.code,
"data-dial": c.dial,
onClick: this.handleClick
onClick: _ => this.props.onSubmit(c.code, c.dial)
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
className: "country-flag"
}, c.flag), "\xA0", c.name, "\xA0", react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
}, 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"
}, "+", c.dial)));
}, "\xA0+", c.dial)));
});
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
className: "scrollable-panel"
className: "scrollable-panel",
style: {
height: '30rem'
}
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", {
className: "phone-country-selector"
}, countries));