A design system in a box. hip-ui.tngl.io/docs/introduction
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at docs 1 lines 2.2 kB view raw
1import{i as e}from"./jsx-runtime-D-oznMWL.js";import{t}from"./react-DNjXG-IQ.js";import{U as n,W as r,Yt as i,gt as a,yt as o}from"./button-B3FtKFjE.js";var s=e(t(),1);function c(e){let{onMoveStart:t,onMove:c,onMoveEnd:l}=e,u=(0,s.useRef)({didMove:!1,lastPosition:null,id:null}),{addGlobalListener:d,removeGlobalListener:f}=o(),p=(0,s.useCallback)((e,n,r,i)=>{r===0&&i===0||(u.current.didMove||(u.current.didMove=!0,t?.({type:`movestart`,pointerType:n,shiftKey:e.shiftKey,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey})),c?.({type:`move`,pointerType:n,deltaX:r,deltaY:i,shiftKey:e.shiftKey,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey}))},[t,c,u]),m=a(p),h=(0,s.useCallback)((e,t)=>{r(),u.current.didMove&&l?.({type:`moveend`,pointerType:t,shiftKey:e.shiftKey,metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey})},[l,u]),g=a(h),[_,v]=(0,s.useState)(null);return i(()=>{if(_===`pointer`){let e=e=>{e.pointerId===u.current.id&&(m(e,e.pointerType||`mouse`,e.pageX-(u.current.lastPosition?.pageX??0),e.pageY-(u.current.lastPosition?.pageY??0)),u.current.lastPosition={pageX:e.pageX,pageY:e.pageY})},t=n=>{n.pointerId===u.current.id&&(g(n,n.pointerType||`mouse`),u.current.id=null,f(window,`pointermove`,e,!1),f(window,`pointerup`,t,!1),f(window,`pointercancel`,t,!1),v(null))};return d(window,`pointermove`,e,!1),d(window,`pointerup`,t,!1),d(window,`pointercancel`,t,!1),()=>{f(window,`pointermove`,e,!1),f(window,`pointerup`,t,!1),f(window,`pointercancel`,t,!1)}}},[_,d,f]),{moveProps:(0,s.useMemo)(()=>{let e={},t=()=>{n(),u.current.didMove=!1};e.onPointerDown=e=>{e.button===0&&u.current.id==null&&(t(),e.stopPropagation(),e.preventDefault(),u.current.lastPosition={pageX:e.pageX,pageY:e.pageY},u.current.id=e.pointerId,v(`pointer`))};let r=(e,n,r)=>{t(),p(e,`keyboard`,n,r),h(e,`keyboard`)};return e.onKeyDown=e=>{switch(e.key){case`Left`:case`ArrowLeft`:e.preventDefault(),e.stopPropagation(),r(e,-1,0);break;case`Right`:case`ArrowRight`:e.preventDefault(),e.stopPropagation(),r(e,1,0);break;case`Up`:case`ArrowUp`:e.preventDefault(),e.stopPropagation(),r(e,0,-1);break;case`Down`:case`ArrowDown`:e.preventDefault(),e.stopPropagation(),r(e,0,1);break}},e},[u,p,h])}}export{c as t};