react-daum-local-script
Version:
Daum Postcode service for React
8 lines • 2.81 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireWildcard(require("react")),_loadPostcode=require("./loadPostcode"),_daumscript=require("./daumscript");function _getRequireWildcardCache(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(b,c){if(!c&&b&&b.__esModule)return b;if(null===b||"object"!=typeof b&&"function"!=typeof b)return{default:b};var d=_getRequireWildcardCache(c);if(d&&d.has(b))return d.get(b);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in b)if("default"!=a&&{}.hasOwnProperty.call(b,a)){var g=f?Object.getOwnPropertyDescriptor(b,a):null;g&&(g.get||g.set)?Object.defineProperty(e,a,g):e[a]=b[a]}return e.default=b,d&&d.set(b,e),e}/**
* @deprecated
* type 'DaumPostcodeProps' is renamed to 'DaumPostcodeEmbedProps'.
* use 'DaumPostcodeEmbedProps' instead of 'DaumPostcodeProps'.
* it will be removed future version.
*/const defaultErrorMessage=/*#__PURE__*/_react.default.createElement("p",null,"\uD604\uC7AC Daum \uC6B0\uD3B8\uBC88\uD638 \uC11C\uBE44\uC2A4\uB97C \uC774\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC7A0\uC2DC \uD6C4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574\uC8FC\uC138\uC694."),defaultStyle={width:"100%",height:400},defaultProps={scriptUrl:_loadPostcode.postcodeScriptUrl,errorMessage:defaultErrorMessage,autoClose:!0};class DaumPostcodeEmbed extends _react.Component{static defaultProps=defaultProps;/**
* See #61
*/mounted=!1;wrap=/*#__PURE__*/(0,_react.createRef)();state={hasError:!1};componentDidMount(){const{initiate:a,onError:b}=this,{scriptUrl:c}=this.props;if(c&&!this.mounted){if(!window)return;const b=window?.document.createElement("script");b.charset="UTF-8",b.type="text/javascript",b.textContent=_daumscript.DaumtScript,window?.document.head.appendChild(b);const c=setInterval(()=>{window.daum?.Postcode?(a(),console.log("Loaded"),clearInterval(c)):console.log("Not loaded")},1e3);this.mounted=!0}}initiate=()=>{const a=window.daum?.Postcode;if(!this.wrap.current)return;const{scriptUrl:b,className:c,style:d,defaultQuery:e,autoClose:f,errorMessage:g,onComplete:h,onClose:i,onResize:j,onSearch:k,...l}=this.props,m=new a({...l,oncomplete:a=>{h&&h(a),f&&this.wrap.current&&this.wrap.current.remove()},onsearch:k,onresize:j,onclose:i,width:"100%",height:"100%"});m.embed(this.wrap.current,{q:e,autoClose:f})};onError=a=>{console.error(a),this.setState({hasError:!0})};render(){const{className:a,style:b,errorMessage:c}=this.props,{hasError:d}=this.state;return/*#__PURE__*/_react.default.createElement("div",{ref:this.wrap,className:a,style:{...defaultStyle,...b}},d&&c)}}var _default=exports.default=DaumPostcodeEmbed;