@commercelayer/react-components
Version:
The Official Commerce Layer React Components
2 lines • 3.05 kB
JavaScript
"use client";
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.OrderListPaginationButtons=OrderListPaginationButtons;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),Parent_1=tslib_1.__importDefault(require("../utils/Parent")),OrderListPaginationContext_1=tslib_1.__importDefault(require("../../context/OrderListPaginationContext")),useCustomContext_1=tslib_1.__importDefault(require("../../utils/hooks/useCustomContext")),omit_1=tslib_1.__importDefault(require("../../utils/omit"));function OrderListPaginationButtons(_a){var _b,_c,{previousPageButton,nextPageButton,navigationButtons,children}=_a,props=tslib_1.__rest(_a,["previousPageButton","nextPageButton","navigationButtons","children"]);const prevButton=tslib_1.__rest(Object.assign({show:!0},previousPageButton),[]),nextButton=tslib_1.__rest(Object.assign({show:!0},nextPageButton),[]),navButton=tslib_1.__rest(Object.assign({show:!0},navigationButtons),[]),ctx=(0,useCustomContext_1.default)({context:OrderListPaginationContext_1.default,contextComponentName:"OrderList",currentComponentName:"OrderListPaginationButtons",key:"totalRows"}),PrevButton=prevButton.show?prevButton.hideWhenDisabled===!0&&ctx?.canPreviousPage===!1?null:(0,jsx_runtime_1.jsx)("button",Object.assign({"data-testid":"prev-button"},(0,omit_1.default)(prevButton,["show","hideWhenDisabled"]),{disabled:ctx?.canPreviousPage===!1,onClick:()=>ctx?.previousPage(),children:(_b=previousPageButton?.label)!==null&&_b!==void 0?_b:"<"})):null,NextButton=nextButton.show?nextButton.hideWhenDisabled===!0&&ctx?.canNextPage===!1?null:(0,jsx_runtime_1.jsx)("button",Object.assign({"data-testid":"next-button"},(0,omit_1.default)(nextButton,["show","hideWhenDisabled"]),{disabled:ctx?.canNextPage===!1,onClick:()=>ctx?.nextPage(),children:(_c=nextButton?.label)!==null&&_c!==void 0?_c:">"})):null,pagesToShow=ctx?.canPreviousPage===!1?ctx?.pageOptions.slice(0,3).map(v=>v+1):ctx?.canNextPage===!1?ctx?.pageOptions.slice(ctx?.pageOptions.length-3,ctx?.pageOptions.length).map(v=>v+1):ctx?.pageOptions.slice(ctx?.pageIndex-1,ctx?.pageIndex+2).map(v=>v+1),NavButtons=navButton.show?pagesToShow?.map(v=>{var _a2,_b2;const className=(ctx?.pageIndex!=null?ctx?.pageIndex+1:1)===v?`${(_a2=navButton?.className)!==null&&_a2!==void 0?_a2:""} ${(_b2=navButton?.activeClassName)!==null&&_b2!==void 0?_b2:""}`:navButton?.className;return(0,jsx_runtime_1.jsx)("button",Object.assign({"data-testid":`page-${v}`},(0,omit_1.default)(navButton,["show","activeClassName","className"]),{className,onClick:()=>ctx?.gotoPage(v-1),children:v}),`page-${v}`)}):null,parentProps=Object.assign(Object.assign({navigationButtons,prevButton,nextButton},ctx),props);return children==null?ctx?.totalRows===0?null:(0,jsx_runtime_1.jsxs)("div",Object.assign({},props,{children:[PrevButton,NavButtons,NextButton]})):(0,jsx_runtime_1.jsx)(Parent_1.default,Object.assign({},parentProps,{children}))}OrderListPaginationButtons.displayName="OrderListPaginationButtons",exports.default=OrderListPaginationButtons;