UNPKG

@guruhotel/aura-hooks

Version:

🪝 Hooks library designed by the Guruhotel team for Aura UI

1 lines 848 B
exports.__esModule=!0,exports.DOTS=void 0,exports.usePagination=function({total:a,siblings:o=1,boundaries:s=1,page:u,initialPage:i=1,onChange:l}){const[g,c]=(0,n.useUncontrolled)({value:u,onChange:l,defaultValue:i,finalValue:i}),d=e=>{c(e<=0?1:e>a?a:e)};return{range:(0,e.useMemo)((()=>{if(2*o+3+2*s>=a)return(0,r.range)(1,a);const e=Math.max(g-o,s),n=Math.min(g+o,a-s),u=e>s+2,i=n<a-(s+1);if(!u&&i){const e=2*o+s+2;return[...(0,r.range)(1,e),t,...(0,r.range)(a-(s-1),a)]}if(u&&!i){const e=s+1+2*o;return[...(0,r.range)(1,s),t,...(0,r.range)(a-e,a)]}return[...(0,r.range)(1,s),t,...(0,r.range)(e,n),t,...(0,r.range)(a-s+1,a)]}),[a,o,g]),active:g,setPage:d,next:()=>d(g+1),previous:()=>d(g-1),first:()=>d(1),last:()=>d(a)}};var e=require("react"),n=require("../use-uncontrolled/use-uncontrolled"),r=require("../utils");const t="dots";exports.DOTS=t;