import { ComponentMeta, ComponentStory } from '@storybook/react'; import { IntlProvider } from 'react-intl'; import PaginationComponent from './pagination'; /** * Pagination - Storybook Meta */ export default { title: 'Molecules/Navigation/Pagination', component: PaginationComponent, argTypes: { 'aria-label': { control: { type: 'text', }, description: 'An accessible name for the pagination.', table: { category: 'Accessibility', }, type: { name: 'string', required: false, }, }, baseUrl: { control: { type: 'text', }, description: 'The url prefix.', table: { category: 'Options', defaultValue: { summary: '/page/' }, }, type: { name: 'string', required: false, }, }, className: { control: { type: 'text', }, description: 'Set additional classnames to the pagination wrapper.', table: { category: 'Styles', }, type: { name: 'string', required: false, }, }, current: { control: { type: 'number', }, description: 'The current page number.', type: { name: 'number', required: true, }, }, perPage: { control: { type: 'number', }, description: 'The number of items per page.', type: { name: 'number', required: true, }, }, siblings: { control: { type: 'number', }, description: 'The number of pages to show next to the current page for one side.', table: { category: 'Options', defaultValue: { summary: 1 }, }, type: { name: 'number', required: false, }, }, total: { control: { type: 'number', }, description: 'The total number of items.', type: { name: 'number', required: true, }, }, }, decorators: [ (Story) => ( ), ], } as ComponentMeta; const Template: ComponentStory = (args) => ( ); /** * Pagination Stories - Less than 5 pages */ export const WithoutDots = Template.bind({}); WithoutDots.args = { current: 2, perPage: 10, siblings: 2, total: 50, }; /** * Pagination Stories - Truncated to the right. */ export const RightDots = Template.bind({}); RightDots.args = { current: 2, perPage: 10, siblings: 2, total: 80, }; /** * Pagination Stories - Truncated to the left. */ export const LeftDots = Template.bind({}); LeftDots.args = { current: 7, perPage: 10, siblings: 2, total: 80, }; /** * Pagination Stories - Truncated both sides. */ export const LeftAndRightDots = Template.bind({}); LeftAndRightDots.args = { current: 6, perPage: 10, siblings: 2, total: 150, }; /** * Pagination Stories - Without previous link */ export const WithoutPreviousLink = Template.bind({}); WithoutPreviousLink.args = { current: 1, perPage: 10, siblings: 2, total: 50, }; /** * Pagination Stories - Without next link */ export const WithoutNextLink = Template.bind({}); WithoutNextLink.args = { current: 5, perPage: 10, siblings: 2, total: 50, };