evento-react
Version:
- Dispatch custom component events with a payload, or forward React synthetic events. - Replicate Svelte's `createEventDispatcher` and Vue's `$emit` behavior in React. - Hook + HOC for class components. - TypeScript support.
3 lines (2 loc) • 2.34 kB
JavaScript
function e(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,n}Object.defineProperty(exports,"__esModule",{value:!0});var n=e(require("react"));function t(){return t=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},t.apply(this,arguments)}function r(e,n){return typeof e===n}function o(e,n){return"function"==typeof window.CustomEvent?function(e,n){var t=document.createEvent("CustomEvent");return t.initCustomEvent(e,!1,!1,n),t}(e,n):new CustomEvent(e,{detail:n})}function u(e){return"on"+e.charAt(0).toUpperCase()+e.slice(1)}function i(e){return r(e.bubbles,"boolean")&&r(e.cancelable,"boolean")&&r(e.defaultPrevented,"boolean")&&r(e.eventPhase,"number")&&r(e.isTrusted,"boolean")&&r(e.preventDefault,"function")&&r(e.isDefaultPrevented,"function")&&r(e.stopPropagation,"function")&&r(e.isPropagationStopped,"function")&&r(e.persist,"function")&&r(e.timeStamp,"number")&&r(e.type,"string")&&e.currentTarget&&e.nativeEvent&&e.target}function a(e){return n.useCallback((function(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];var a=t[0],c=t[1],f=u(a),s=e[f];if("function"!=typeof s)return new Promise((function(e){return e(!1)}));var l=c&&i(c)?c:o(a,c),v=s(l);return v instanceof Promise?v.then((function(){return!0})):new Promise((function(e){return e(!0)}))}),[e])}exports.useCreateEvento=a,exports.useExpCreateEvento=function(){var e,t,r=null==(e=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner)||null==(t=e.current)?void 0:t.pendingProps;return n.useCallback((function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];var a=n[0],c=n[1],f=u(a),s=r[f];if("function"!=typeof s)return new Promise((function(e){return e(!1)}));var l=c&&i(c)?c:o(a,c),v=s(l);return v instanceof Promise?v.then((function(){return!0})):new Promise((function(e){return e(!0)}))}),[r])},exports.withEvento=function(e){return function(r){var o=t({},r,{evento:a(r)});return n.createElement(e,o)}};
//# sourceMappingURL=evento-react.cjs.production.min.js.map
;