@knowmax/pager-fluentuiv9
Version:
Knowmax Pager with Fluent V9 user interface implementation.
1 lines • 17 kB
Source Map (JSON)
{"version":3,"sources":["../src/components/Pager.tsx","../src/components/TextDisplay.tsx","../src/components/ButtonDisplay.tsx"],"sourcesContent":["import { FunctionComponent, useEffect, useMemo } from 'react'\r\nimport { makeStyles, tokens } from '@fluentui/react-components'\r\nimport { TextDisplay } from './TextDisplay'\r\nimport { ButtonDisplay } from './ButtonDisplay'\r\nimport { IPagerProps } from './IPagerProps'\r\n\r\nconst useClasses = makeStyles({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n columnGap: tokens.spacingHorizontalXS,\r\n padding: tokens.spacingHorizontalXXS\r\n }\r\n})\r\n\r\n/** \r\n * Pager component provides navigation controls for page switching. It can display the navigation\r\n * as text or button blocks based on the `display` prop.\r\n * @param IPagerProps Props for Pager component.\r\n */\r\nexport const Pager: FunctionComponent<IPagerProps> = ({ totalResults, pageSize, currentPage, onChange, outerButtonsThreshold = 3, display = 'text', buttonProps, selectedButtonProps, maxVisiblePageButtons }) => {\r\n const classes = useClasses()\r\n\r\n const totalpages = useMemo(() => Math.ceil(totalResults / pageSize),\r\n [pageSize, totalResults])\r\n\r\n useEffect(() => {\r\n if (currentPage < 1) {\r\n onChange(1)\r\n } else if (currentPage > totalpages && totalpages > 0) {\r\n onChange(totalpages)\r\n }\r\n }, [currentPage, totalpages, onChange])\r\n\r\n return (\r\n <div className={classes.root}>\r\n {display === 'text' ?\r\n <TextDisplay currentPage={currentPage} totalPages={totalpages} onChange={onChange} outerButtonsThreshold={outerButtonsThreshold} /> :\r\n <ButtonDisplay currentPage={currentPage} totalPages={totalpages} onChange={onChange} buttonProps={buttonProps} selectedButtonProps={selectedButtonProps} maxVisiblePageButtons={maxVisiblePageButtons} />}\r\n </div>\r\n )\r\n}","import { FunctionComponent } from \"react\"\r\nimport { ChevronLeftRegular, ChevronRightRegular, ChevronDoubleLeftRegular, ChevronDoubleRightRegular } from '@fluentui/react-icons'\r\nimport { Text, Button } from '@fluentui/react-components'\r\n\r\n/**\r\n * TextDisplay component renders navigation controls as text for page switching. It displays navigation buttons\r\n * and the current page number relative to the total available pages.\r\n *\r\n * @param currentPage - The current active page.\r\n * @param totalPages - The total number of available pages.\r\n * @param onChange - Callback function to handle page changes.\r\n * @param outerButtonsThreshold - (Optional) The outerButtonsThreshold value that determines when outer navigation buttons are displayed.\r\n */\r\nexport const TextDisplay: FunctionComponent<{\r\n currentPage: number,\r\n totalPages: number,\r\n onChange: (newPage: number) => void,\r\n outerButtonsThreshold?: number\r\n}> = ({ currentPage, totalPages, onChange, outerButtonsThreshold: outerButtonsThreshold = 3 }) => {\r\n\r\n return (\r\n <>\r\n {totalPages > outerButtonsThreshold &&\r\n <Button\r\n size='small'\r\n appearance='subtle'\r\n icon={<ChevronDoubleLeftRegular />}\r\n disabled={currentPage === 1}\r\n onClick={() => onChange(1)} />\r\n }\r\n\r\n <Button\r\n size='small'\r\n appearance='subtle'\r\n icon={<ChevronLeftRegular />}\r\n disabled={currentPage === 1 || totalPages === 1}\r\n onClick={() => onChange(currentPage - 1)} />\r\n\r\n <Text>\r\n {currentPage}/{totalPages}\r\n </Text>\r\n\r\n <Button\r\n size='small'\r\n appearance='subtle'\r\n icon={<ChevronRightRegular />}\r\n disabled={currentPage === totalPages || totalPages === 1}\r\n onClick={() => onChange(currentPage + 1)} />\r\n\r\n {totalPages > outerButtonsThreshold &&\r\n <Button\r\n size='small'\r\n appearance='subtle'\r\n icon={<ChevronDoubleRightRegular />}\r\n disabled={currentPage === totalPages}\r\n onClick={() => onChange(totalPages)} />\r\n }\r\n </>\r\n )\r\n}","import { FunctionComponent, useMemo } from \"react\"\r\nimport { makeStyles, tokens, Button, ButtonProps } from '@fluentui/react-components'\r\nimport { ChevronLeftRegular, ChevronRightRegular } from '@fluentui/react-icons'\r\n\r\nconst getLegacyDisplayedPageNumbers = (totalPages: number, currentPage: number) => {\r\n return Array.from({ length: totalPages }, (_, index) => index + 1).filter(\r\n number => Math.abs(number - currentPage) <= 1 || number === 1 || number === totalPages\r\n )\r\n}\r\n\r\nconst getDisplayedPageNumbers = (totalPages: number, currentPage: number, maxVisiblePageButtons?: number) => {\r\n const legacyPages = getLegacyDisplayedPageNumbers(totalPages, currentPage)\r\n\r\n if (maxVisiblePageButtons === undefined) {\r\n return legacyPages\r\n }\r\n\r\n const maxButtons = Math.max(3, Math.floor(maxVisiblePageButtons))\r\n\r\n if (totalPages <= maxButtons) {\r\n return Array.from({ length: totalPages }, (_, index) => index + 1)\r\n }\r\n\r\n const selectedPages = new Set<number>(legacyPages)\r\n\r\n if (selectedPages.size < maxButtons) {\r\n let distance = 2\r\n while (selectedPages.size < maxButtons) {\r\n const left = currentPage - distance\r\n const right = currentPage + distance\r\n let addedInThisCycle = false\r\n\r\n if (left > 1 && !selectedPages.has(left)) {\r\n selectedPages.add(left)\r\n addedInThisCycle = true\r\n }\r\n\r\n if (selectedPages.size >= maxButtons) {\r\n break\r\n }\r\n\r\n if (right < totalPages && !selectedPages.has(right)) {\r\n selectedPages.add(right)\r\n addedInThisCycle = true\r\n }\r\n\r\n if (!addedInThisCycle) {\r\n break\r\n }\r\n\r\n distance += 1\r\n }\r\n }\r\n\r\n if (selectedPages.size > maxButtons) {\r\n const requiredPages = [1, totalPages, currentPage]\r\n const uniqueRequiredPages = Array.from(new Set(requiredPages)).filter(\r\n page => page >= 1 && page <= totalPages\r\n )\r\n\r\n const optionalPages = Array.from(selectedPages)\r\n .filter(page => !uniqueRequiredPages.includes(page))\r\n .sort((left, right) => {\r\n const distanceDiff = Math.abs(left - currentPage) - Math.abs(right - currentPage)\r\n return distanceDiff !== 0 ? distanceDiff : left - right\r\n })\r\n\r\n selectedPages.clear()\r\n uniqueRequiredPages.forEach(page => selectedPages.add(page))\r\n\r\n for (const page of optionalPages) {\r\n if (selectedPages.size >= maxButtons) {\r\n break\r\n }\r\n\r\n selectedPages.add(page)\r\n }\r\n }\r\n\r\n return Array.from(selectedPages).sort((left, right) => left - right)\r\n}\r\n\r\nconst useClasses = makeStyles({\r\n innerroot: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center'\r\n },\r\n iconbuttonsize: {\r\n minWidth: tokens.lineHeightBase500,\r\n maxWidth: tokens.lineHeightBase500,\r\n minHeight: tokens.lineHeightBase500,\r\n maxHeight: tokens.lineHeightBase500,\r\n fontSize: tokens.fontSizeBase200,\r\n padding: tokens.spacingHorizontalXS\r\n },\r\n pagebuttonsize: {\r\n minWidth: tokens.lineHeightBase500,\r\n minHeight: tokens.lineHeightBase500,\r\n maxHeight: tokens.lineHeightBase500,\r\n fontSize: tokens.fontSizeBase200,\r\n whiteSpace: 'nowrap',\r\n padding: tokens.spacingHorizontalSNudge\r\n }\r\n})\r\n\r\n/**\r\n * ButtonDisplay component renders a set of navigation buttons for page switching. It calculates the displayed page numbers\r\n * based on the current page and total pages, and adds ellipsis ('...') when appropriate to optimize pagination navigation.\r\n *\r\n * @param currentPage - The current active page.\r\n * @param totalPages - The total number of available pages.\r\n * @param onChange - Callback function to handle page changes.\r\n * @param buttonProps? - Props that can be passed to overwrite the appearance and behavior of the button within the component.\r\n * @param maxVisiblePageButtons? - Optional max count of page-number buttons to render.\r\n */\r\nexport const ButtonDisplay: FunctionComponent<{ currentPage: number, totalPages: number, onChange: (newPage: number) => void, buttonProps?: ButtonProps, selectedButtonProps?: ButtonProps, maxVisiblePageButtons?: number }> = ({\r\n currentPage, \r\n totalPages, \r\n onChange, \r\n buttonProps, \r\n selectedButtonProps,\r\n maxVisiblePageButtons\r\n }) => {\r\n const classes = useClasses()\r\n\r\n const displayedpagenumbers = useMemo(() => {\r\n return getDisplayedPageNumbers(totalPages, currentPage, maxVisiblePageButtons)\r\n }, [currentPage, totalPages, maxVisiblePageButtons])\r\n\r\n const renderedbuttons = useMemo(() => {\r\n const buttons = []\r\n\r\n for (let i = 0;i < displayedpagenumbers.length;i++) {\r\n const pagedifference = Math.abs(displayedpagenumbers[i] - displayedpagenumbers[i - 1])\r\n\r\n if (i > 0 && pagedifference === 2) {\r\n const missedPage = displayedpagenumbers[i - 1] + 1\r\n buttons.push(\r\n <Button\r\n key={`missed-${i}`}\r\n className={classes.pagebuttonsize}\r\n onClick={() => onChange(missedPage)}\r\n appearance={missedPage === currentPage ? 'secondary' : 'subtle'}\r\n {...(missedPage === currentPage ? selectedButtonProps : buttonProps)}\r\n >\r\n {missedPage}\r\n </Button>\r\n )\r\n } else if (i > 0 && pagedifference > 2) {\r\n buttons.push(\r\n <Button\r\n key={`ellipsis-${i}`}\r\n className={classes.pagebuttonsize}\r\n onClick={() => onChange(Math.round(displayedpagenumbers[i - 1] + pagedifference / 2))} // Jump to the midpoint of the pages between the previous and current displayed page numbers\r\n appearance={'subtle'}\r\n {...buttonProps}\r\n >\r\n ...\r\n </Button>\r\n )\r\n }\r\n\r\n buttons.push(\r\n <Button\r\n key={`button-${i}`}\r\n className={classes.pagebuttonsize}\r\n onClick={() => onChange(displayedpagenumbers[i])}\r\n appearance={displayedpagenumbers[i] === currentPage ? 'secondary' : 'subtle'}\r\n {...(displayedpagenumbers[i] === currentPage ? selectedButtonProps : buttonProps)}\r\n >\r\n {displayedpagenumbers[i]}\r\n </Button>\r\n )\r\n }\r\n\r\n return buttons\r\n }, [currentPage, displayedpagenumbers, onChange, buttonProps, selectedButtonProps])\r\n\r\n return (\r\n <>\r\n <Button\r\n className={classes.iconbuttonsize}\r\n appearance={'subtle'}\r\n icon={<ChevronLeftRegular />}\r\n disabled={currentPage === 1 || totalPages === 1}\r\n onClick={() => onChange(currentPage - 1)}\r\n />\r\n\r\n {renderedbuttons}\r\n\r\n <Button\r\n className={classes.iconbuttonsize}\r\n appearance='subtle'\r\n icon={<ChevronRightRegular />}\r\n disabled={currentPage === totalPages || totalPages === 1}\r\n onClick={() => onChange(currentPage + 1)}\r\n />\r\n </>\r\n )\r\n}"],"mappings":"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","names":["useMemo","makeStyles","tokens","Button","ChevronLeftRegular","ChevronRightRegular","Fragment","jsx","jsxs","jsx","useClasses","makeStyles","tokens","useMemo"]}