UNPKG

react-daum-postcode

Version:

Daum Postcode service for React

2 lines (1 loc) 3.48 kB
import e,{createRef as o,Component as t,useEffect as r,useCallback as n}from"react";var s=function(e,o){return s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,o){e.__proto__=o}||function(e,o){for(var t in o)o.hasOwnProperty(t)&&(e[t]=o[t])},s(e,o)};var p=function(){return p=Object.assign||function(e){for(var o,t=1,r=arguments.length;t<r;t++)for(var n in o=arguments[t])Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n]);return e},p.apply(this,arguments)};function a(e,o){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)o.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(t[r[n]]=e[r[n]])}return t}var i,c="https://t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js",u=(i=null,function(e){return void 0===e&&(e=c),i||(i=new Promise((function(o,t){var r=document.createElement("script");r.src=e,r.onload=function(){var e;if(null===(e=null===window||void 0===window?void 0:window.daum)||void 0===e?void 0:e.Postcode)return o(window.daum.Postcode);t(new Error("Script is loaded successfully, but cannot find Postcode module. Check your scriptURL property."))},r.onerror=function(e){return t(e)},r.id="daum_postcode_script",document.body.appendChild(r)})))}),l=e.createElement("p",null,"현재 Daum 우편번호 서비스를 이용할 수 없습니다. 잠시 후 다시 시도해주세요."),d={width:"100%",height:400},f={scriptUrl:c,errorMessage:l,autoClose:!0},h=function(t){function r(){var e=null!==t&&t.apply(this,arguments)||this;return e.mounted=!1,e.wrap=o(),e.state={hasError:!1,completed:!1},e.initiate=function(o){if(e.wrap.current){var t=e.props;t.scriptUrl,t.className,t.style;var r=t.defaultQuery,n=t.autoClose;t.errorMessage;var s=t.onComplete,i=t.onClose,c=t.onResize,u=t.onSearch,l=a(t,["scriptUrl","className","style","defaultQuery","autoClose","errorMessage","onComplete","onClose","onResize","onSearch"]);new o(p(p({},l),{oncomplete:function(o){s&&s(o),e.setState({completed:!0})},onsearch:u,onresize:c,onclose:i,width:"100%",height:"100%"})).embed(e.wrap.current,{q:r,autoClose:n})}},e.onError=function(o){console.error(o),e.setState({hasError:!0})},e}return function(e,o){function t(){this.constructor=e}s(e,o),e.prototype=null===o?Object.create(o):(t.prototype=o.prototype,new t)}(r,t),r.prototype.componentDidMount=function(){var e=this.initiate,o=this.onError,t=this.props.scriptUrl;t&&(this.mounted||(u(t).then(e).catch(o),this.mounted=!0))},r.prototype.render=function(){var o=this.props,t=o.className,r=o.style,n=o.errorMessage,s=o.autoClose,a=this.state,i=a.hasError,c=a.completed;return!0===s&&!0===c?null:e.createElement("div",{ref:this.wrap,className:t,style:p(p({},d),r)},i&&n)},r.defaultProps=f,r}(t);function m(e){return void 0===e&&(e=c),r((function(){u(e)}),[e]),n((function(o){var t=p({},o),r=t.defaultQuery,n=t.left,s=t.top,i=t.popupKey,c=t.popupTitle,l=t.autoClose,d=t.onComplete,f=t.onResize,h=t.onClose,m=t.onSearch,y=t.onError,v=a(t,["defaultQuery","left","top","popupKey","popupTitle","autoClose","onComplete","onResize","onClose","onSearch","onError"]);return u(e).then((function(e){new e(p(p({},v),{oncomplete:d,onsearch:m,onresize:f,onclose:h})).open({q:r,left:n,top:s,popupTitle:c,popupKey:i,autoClose:l})})).catch(y)}),[e])}export{h as DaumPostcodeEmbed,h as default,u as loadPostcode,m as useDaumPostcodePopup};