import React from "react"; import styled from "styled-components"; import { Icon, NumericInput } from "@blueprintjs/core"; import SearchComponent from "components/designSystems/appsmith/SearchComponent"; import TableColumnsVisibility from "components/designSystems/appsmith/TableColumnsVisibility"; import { ReactTableColumnProps } from "components/designSystems/appsmith/ReactTableComponent"; import { RowWrapper, PaginationWrapper, TableHeaderWrapper, PaginationItemWrapper, CommonFunctionsMenuWrapper, } from "./TableStyledWrappers"; import { Colors } from "constants/Colors"; const PageNumberInputWrapper = styled(NumericInput)` &&& input { box-shadow: none; background: linear-gradient(0deg, ${Colors.WHITE}, ${Colors.WHITE}), ${Colors.POLAR}; border: 1px solid ${Colors.GREEN}; box-sizing: border-box; border-radius: 4px; width: 32px; padding: 0 !important; text-align: center; } margin: 0 8px; `; const PageNumberInput = (props: { pageNo: number; pageCount: number; updatePageNo: Function; }) => { return ( { if (isNaN(value) || value < 1) { props.updatePageNo(1); } else if (value > props.pageCount) { props.updatePageNo(props.pageCount); } else { props.updatePageNo(value); } }} /> ); }; interface TableHeaderProps { updatePageNo: Function; nextPageClick: () => void; prevPageClick: () => void; pageNo: number; pageCount: number; currentPageIndex: number; pageOptions: number[]; columns: ReactTableColumnProps[]; hiddenColumns?: string[]; updateHiddenColumns: (hiddenColumns?: string[]) => void; searchKey: string; searchTableData: (searchKey: any) => void; serverSidePaginationEnabled: boolean; } const TableHeader = (props: TableHeaderProps) => { return ( {props.serverSidePaginationEnabled && ( { props.prevPageClick(); }} > {props.pageNo + 1} { props.nextPageClick(); }} > )} {!props.serverSidePaginationEnabled && ( Showing {props.currentPageIndex + 1}-{props.pageCount} items { const pageNo = props.currentPageIndex > 0 ? props.currentPageIndex - 1 : 0; props.updatePageNo(pageNo + 1); }} > Page{" "} {" "} of {props.pageCount} { const pageNo = props.currentPageIndex < props.pageCount - 1 ? props.currentPageIndex + 1 : 0; props.updatePageNo(pageNo + 1); }} > )} ); }; export default TableHeader;