pagination.stories.jsx 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. import React, { useState } from 'react';
  2. import 'normalize.css';
  3. import { Button } from '../../index';
  4. import Pagination from '../index';
  5. export default {
  6. title: 'Pagination'
  7. }
  8. export const PaginationSmall = () => <Pagination total={90} size="small"></Pagination>;
  9. PaginationSmall.story = {
  10. name: 'Pagination small',
  11. };
  12. export const PaginationDefault = () => (
  13. <div>
  14. <Pagination total={1}></Pagination>
  15. <Pagination total={0}></Pagination>
  16. <Pagination total={9}></Pagination>
  17. <Pagination total={30}></Pagination>
  18. <Pagination total={80}></Pagination>
  19. <Pagination total={200}></Pagination>
  20. <Pagination total={80} pageSize={30}></Pagination>
  21. <Pagination total={1000000000}></Pagination>
  22. </div>
  23. );
  24. PaginationDefault.story = {
  25. name: 'Pagination default',
  26. };
  27. export const PaginationHideOnSinglePage = () => (
  28. <div>
  29. <Pagination total={1} hideOnSinglePage></Pagination>
  30. <Pagination total={0} hideOnSinglePage></Pagination>
  31. <Pagination total={9} hideOnSinglePage></Pagination>
  32. <Pagination total={30} hideOnSinglePage></Pagination>
  33. </div>
  34. );
  35. PaginationHideOnSinglePage.story = {
  36. name: 'Pagination hideOnSinglePage',
  37. };
  38. export const DefaultCurrentPageDemo = () => (
  39. <div>
  40. <Pagination total={20000} defaultCurrentPage={2}></Pagination>
  41. </div>
  42. );
  43. DefaultCurrentPageDemo.story = {
  44. name: 'Pagination 指定当前页',
  45. };
  46. const ControlPage = () => {
  47. const [page, setPage] = useState(3);
  48. function onPageChange(currentPage) {
  49. setPage(currentPage);
  50. }
  51. return (
  52. <div>
  53. <Pagination total={200} currentPage={page} onPageChange={onPageChange}></Pagination>
  54. </div>
  55. );
  56. };
  57. export const ControlledPageDemo = () => <ControlPage />;
  58. ControlledPageDemo.story = {
  59. name: 'Pagination 页码受控',
  60. };
  61. export const PaginationShowPageSizeChanger = () => (
  62. <div>
  63. <Pagination total={100} showSizeChanger showTotal></Pagination>
  64. <Pagination total={200}></Pagination>
  65. <Pagination
  66. total={300}
  67. showSizeChanger
  68. pageSizeOpts={[10, 20, 50, 200]}
  69. onPageChange={(page, pageSize) => console.log(`pageChange:${page},pageSize:${pageSize}`)}
  70. onPageSizeChange={pageSize => console.log(`pageSizeChange${pageSize}`)}
  71. ></Pagination>
  72. <Pagination total={300} showSizeChanger></Pagination>
  73. </div>
  74. );
  75. PaginationShowPageSizeChanger.story = {
  76. name: 'Pagination showPageSizeChanger',
  77. };
  78. export const PaginationPageSizeOpts = () => (
  79. <div>
  80. <Pagination total={80} showSizeChanger></Pagination>
  81. <Pagination total={200}></Pagination>
  82. <Pagination total={300} showSizeChanger pageSizeOpts={[50, 80, 90, 200]}></Pagination>
  83. </div>
  84. );
  85. PaginationPageSizeOpts.story = {
  86. name: 'Pagination pageSizeOpts',
  87. };
  88. export const PaginationShowQuickJumper = () => (
  89. <div>
  90. <Pagination total={1} showSizeChanger showQuickJumper></Pagination>
  91. <Pagination total={80} showSizeChanger showQuickJumper></Pagination>
  92. <Pagination total={200} showQuickJumper></Pagination>
  93. <Pagination
  94. total={300}
  95. showSizeChanger
  96. pageSizeOpts={[50, 80, 90, 200]}
  97. showQuickJumper
  98. ></Pagination>
  99. </div>
  100. );
  101. PaginationShowQuickJumper.story = {
  102. name: 'Pagination showQuickJumper',
  103. };
  104. const DynamicPageSize = () => {
  105. const [pageSize, setPageSize] = useState(10);
  106. function changePageSize() {
  107. let map = {
  108. 10: 40,
  109. 40: 100,
  110. 100: 20,
  111. 100: 10,
  112. };
  113. setPageSize(map[pageSize]);
  114. }
  115. return (
  116. <>
  117. <Pagination total={200} showSizeChanger pageSize={pageSize}></Pagination>
  118. <br />
  119. <Button onClick={changePageSize}>change</Button>
  120. </>
  121. );
  122. };
  123. export const PaginationDynamicUpdatePageSize = () => <DynamicPageSize />;
  124. PaginationDynamicUpdatePageSize.story = {
  125. name: 'Pagination dynamic update pageSize',
  126. };
  127. export const HideOnSingePageAndShowChanger = () => {
  128. return (
  129. <Pagination total={10} hideOnSinglePage showSizeChanger style={{ marginBottom: 12 }}></Pagination>
  130. )
  131. }
  132. HideOnSingePageAndShowChanger.story = {
  133. name: 'hideOnSingelePage & showSizeChanger at same time',
  134. };