diff options
Diffstat (limited to 'src/components/molecules/nav/pagination.stories.tsx')
| -rw-r--r-- | src/components/molecules/nav/pagination.stories.tsx | 171 | 
1 files changed, 171 insertions, 0 deletions
| diff --git a/src/components/molecules/nav/pagination.stories.tsx b/src/components/molecules/nav/pagination.stories.tsx new file mode 100644 index 0000000..2e86db4 --- /dev/null +++ b/src/components/molecules/nav/pagination.stories.tsx @@ -0,0 +1,171 @@ +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import PaginationComponent from './pagination'; + +/** + * Pagination - Storybook Meta + */ +export default { +  title: 'Molecules/Navigation/Pagination', +  component: PaginationComponent, +  args: { +    baseUrl: '/page/', +    siblings: 1, +  }, +  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, +      }, +    }, +  }, +} as ComponentMeta<typeof PaginationComponent>; + +const Template: ComponentStory<typeof PaginationComponent> = (args) => ( +  <PaginationComponent {...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, +}; | 
