UNPKG

clickable-box

Version:

Add `onClick` to HTML elements without sacrificing accessibility.

3 lines (2 loc) 1.01 kB
import e from"react";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e},r.apply(this,arguments)}var n=["is","onClick","disabled","tabIndex","onKeyPress"],t=/*#__PURE__*/e.forwardRef(function(t,a){var i=t.is,o=void 0===i?"span":i,s=t.onClick,c=t.disabled,d=t.tabIndex,l=void 0===d?0:d,f=t.onKeyPress,u=function(e,r){if(null==e)return{};var n,t,a={},i=Object.keys(e);for(t=0;t<i.length;t++)r.indexOf(n=i[t])>=0||(a[n]=e[n]);return a}(t,n);/*#__PURE__*/return e.createElement(o,r({tabIndex:c?void 0:l,role:"button",onKeyPress:c?void 0:function(e){switch(e.key){case" ":case"Spacebar":e.preventDefault(),s&&f||f?f(e):s&&s(e);break;case"Enter":if(f&&(f(e),e.isDefaultPrevented()))return;s&&s(e)}},onClick:c?void 0:s,"aria-disabled":c?"true":void 0,ref:a},u))});t.displayName="ClickableBox";export{t as default}; //# sourceMappingURL=clickable-box.module.js.map