UNPKG

react-daum-postcode

Version:

Daum Postcode service for React

2 lines (1 loc) 3.54 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),o=function(e,t){return o=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])},o(e,t)};var t=function(){return t=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},t.apply(this,arguments)};function r(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 n,s="https://t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js",p=(n=null,function(e){return void 0===e&&(e=s),n||(n=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)})))}),a=e.createElement("p",null,"현재 Daum 우편번호 서비스를 이용할 수 없습니다. 잠시 후 다시 시도해주세요."),u={width:"100%",height:400},c={scriptUrl:s,errorMessage:a,autoClose:!0},i=function(n){function s(){var o=null!==n&&n.apply(this,arguments)||this;return o.mounted=!1,o.wrap=e.createRef(),o.state={hasError:!1,completed:!1},o.initiate=function(e){if(o.wrap.current){var n=o.props;n.scriptUrl,n.className,n.style;var s=n.defaultQuery,p=n.autoClose;n.errorMessage;var a=n.onComplete,u=n.onClose,c=n.onResize,i=n.onSearch,l=r(n,["scriptUrl","className","style","defaultQuery","autoClose","errorMessage","onComplete","onClose","onResize","onSearch"]);new e(t(t({},l),{oncomplete:function(e){a&&a(e),o.setState({completed:!0})},onsearch:i,onresize:c,onclose:u,width:"100%",height:"100%"})).embed(o.wrap.current,{q:s,autoClose:p})}},o.onError=function(e){console.error(e),o.setState({hasError:!0})},o}return function(e,t){function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}(s,n),s.prototype.componentDidMount=function(){var e=this.initiate,o=this.onError,t=this.props.scriptUrl;t&&(this.mounted||(p(t).then(e).catch(o),this.mounted=!0))},s.prototype.render=function(){var o=this.props,r=o.className,n=o.style,s=o.errorMessage,p=o.autoClose,a=this.state,c=a.hasError,i=a.completed;return!0===p&&!0===i?null:e.createElement("div",{ref:this.wrap,className:r,style:t(t({},u),n)},c&&s)},s.defaultProps=c,s}(e.Component);exports.DaumPostcodeEmbed=i,exports.default=i,exports.loadPostcode=p,exports.useDaumPostcodePopup=function(o){return void 0===o&&(o=s),e.useEffect((function(){p(o)}),[o]),e.useCallback((function(e){var n=t({},e),s=n.defaultQuery,a=n.left,u=n.top,c=n.popupKey,i=n.popupTitle,l=n.autoClose,d=n.onComplete,f=n.onResize,h=n.onClose,m=n.onSearch,y=n.onError,v=r(n,["defaultQuery","left","top","popupKey","popupTitle","autoClose","onComplete","onResize","onClose","onSearch","onError"]);return p(o).then((function(e){new e(t(t({},v),{oncomplete:d,onsearch:m,onresize:f,onclose:h})).open({q:s,left:a,top:u,popupTitle:i,popupKey:c,autoClose:l})})).catch(y)}),[o])};