UNPKG

react-phonenumber-text-input

Version:

an international phone number input component for React.

3 lines (2 loc) 1.78 kB
import e,{useState as o,useCallback as l,useEffect as t}from"react";import{getCountryCallingCode as a}from"../../utils/getCountryCallingCode.js";import{useCheckPhoneValidLibPhoneNumber as n}from"../../hooks/checkValid.js";import{useParsePhoneNumberLibPhoneNumber as r}from"../../hooks/parsePhoneNumber.js";import{allCountries as i}from"../../type.js";import"../../utils/validate.js";import"../../hooks/useMemoizedFn.js";import"../../normalizeArguments-0946edbc.js";var s=function(s){var u=s.countries,m=void 0===u?i:u,C=s.showCallingCode,d=void 0===C||C,c=o(""),p=c[0],v=c[1],y=o(s.defaultCountry||m[0]),f=y[0],h=y[1],g=o(!1),N=g[0],j=g[1],S=n(),k=r(),E=l((function(e,o){var l,t,n;if(v(e),S(e,o)){j(!1);var r=k(e,o),i=r.countyCallingCode,u=r.nationalNumber,m=r.formattedNationalNumber,C=r.countryCode;v(m),null===(l=s.onChange)||void 0===l||l.call(s,e,{valid:!0,formated:m,fullValue:"+"+i+u}),f!==C&&(h(C),null===(t=s.onCountryCodeChange)||void 0===t||t.call(s,C))}else j(!!e),null===(n=s.onChange)||void 0===n||n.call(s,e,{valid:!1,formated:"",fullValue:"+"+a(o)+e})}),[]);return t((function(){s.value!==p&&void 0!==s.value&&(v(s.value),E(s.value,f))}),[s.value,f]),e.createElement(s.WrapperComponent,{style:s.style,isInValid:N,className:s.className},e.createElement(s.SelectComponent,{countries:m,countryCode:f,setCountryCode:h,onCountryCodeChange:s.onCountryCodeChange,className:s.selectClassName,style:s.selectStyle,optionClassName:s.optionClassName,optionStyle:s.optionStyle}),d&&e.createElement(s.CallingCodeComponent,{callingCode:"+"+a(f)}),e.createElement(s.InputComponent,{placeholder:s.placeholder,value:p,onChange:function(e){return E(e,f)},className:s.inputClassName,style:s.inputStyle}))};export{s as default}; //# sourceMappingURL=BaseReactPhoneNumberInput.js.map