UNPKG

carbon-react

Version:

A library of reusable React components for easily building user interfaces.

2 lines (1 loc) 564 B
import{useState as o,useRef as e,useCallback as n,useMemo as r}from"react";const u=u=>{const[t,s]=o(!1),[c,l]=o(!1),a=e(null),i=n((()=>s(!0)),[]),v=n((()=>s(!1)),[]),d=n((o=>{a.current=o.current}),[]),f=n((()=>{requestAnimationFrame((()=>{var o;null==a||null===(o=a.current)||void 0===o||o.focus({preventScroll:!0})}))}),[]),m=n((()=>l(!0)),[]),p=n((()=>l(!1)),[]);return r((()=>({hasFocus:t,hasMouseOver:c,onFocus:u?void 0:i,onBlur:u?void 0:v,onMouseDown:f,onMouseEnter:u?void 0:m,onMouseLeave:u?void 0:p,inputRef:d})),[t,c,i,v,f,u,m,p,d])};export{u as default};