monday-ui-react-core
Version:
Official monday.com UI resources for application development in React.js
3 lines (2 loc) • 1.26 kB
JavaScript
import{defineProperty as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useRef as o,useCallback as n,useMemo as r}from"react";import t from"classnames";import{noop as a}from"lodash-es";import s from"../../../hooks/useEventListener/index.js";import c from"../../../hooks/useKeyEvent/index.js";import{keyCodes as l}from"../../../constants/keyCodes.js";import i from"../../../hooks/useIconScreenReaderAccessProps.js";import m from"../Icon.module.scss.js";var u=[l.ENTER,l.SPACE];function f(l){var f=l.onClick,p=l.className,d=l.clickable,k=l.ignoreFocusStyle,b=l.isDecorationOnly,v=l.iconLabel,y=l.externalTabIndex,C=o(null),x=n((function(e){document.activeElement===C.current&&f(e)}),[C,f]),E=n((function(e){e.preventDefault()}),[]),j=r((function(){return t(m.icon,p,e(e({},m.clickable,d),m.noFocusStyle,k))}),[d,p,k]);s({eventName:"mousedown",callback:E,ref:C}),c({keys:u,ref:C,callback:x,ignoreDocumentFallback:!0,capture:!0,stopPropagation:!0,preventDefault:!0});var P=n((function(e){(f||a)(e)}),[f]),D=i({isClickable:d,label:v,isDecorationOnly:b});return D.tabIndex=null!=y?y:D.tabIndex,{screenReaderAccessProps:D,onClickCallback:P,computedClassName:j,onEnterCallback:x,iconRef:C}}export{f as default};
//# sourceMappingURL=useIconProps.js.map