react-phonenumber-text-input
Version:
an international phone number input component for React.
3 lines (2 loc) • 1.79 kB
JavaScript
"use strict";var e=require("react"),l=require("../../utils/getCountryCallingCode.js"),o=require("../../hooks/checkValid.js"),n=require("../../hooks/parsePhoneNumber.js"),t=require("../../type.js");require("../../utils/validate.js"),require("../../hooks/useMemoizedFn.js"),require("../../normalizeArguments-c4d84f74.js");module.exports=function(a){var u=a.countries,r=void 0===u?t.allCountries:u,s=a.showCallingCode,i=void 0===s||s,C=e.useState(""),c=C[0],d=C[1],m=e.useState(a.defaultCountry||r[0]),y=m[0],h=m[1],v=e.useState(!1),p=v[0],g=v[1],N=o.useCheckPhoneValidLibPhoneNumber(),f=n.useParsePhoneNumberLibPhoneNumber(),b=e.useCallback((function(e,o){var n,t,u;if(d(e),N(e,o)){g(!1);var r=f(e,o),s=r.countyCallingCode,i=r.nationalNumber,C=r.formattedNationalNumber,c=r.countryCode;d(C),null===(n=a.onChange)||void 0===n||n.call(a,e,{valid:!0,formated:C,fullValue:"+"+s+i}),y!==c&&(h(c),null===(t=a.onCountryCodeChange)||void 0===t||t.call(a,c))}else g(!!e),null===(u=a.onChange)||void 0===u||u.call(a,e,{valid:!1,formated:"",fullValue:"+"+l.getCountryCallingCode(o)+e})}),[]);return e.useEffect((function(){a.value!==c&&void 0!==a.value&&(d(a.value),b(a.value,y))}),[a.value,y]),e.createElement(a.WrapperComponent,{style:a.style,isInValid:p,className:a.className},e.createElement(a.SelectComponent,{countries:r,countryCode:y,setCountryCode:h,onCountryCodeChange:a.onCountryCodeChange,className:a.selectClassName,style:a.selectStyle,optionClassName:a.optionClassName,optionStyle:a.optionStyle}),i&&e.createElement(a.CallingCodeComponent,{callingCode:"+"+l.getCountryCallingCode(y)}),e.createElement(a.InputComponent,{placeholder:a.placeholder,value:c,onChange:function(e){return b(e,y)},className:a.inputClassName,style:a.inputStyle}))};
//# sourceMappingURL=BaseReactPhoneNumberInput.js.map