-
Notifications
You must be signed in to change notification settings - Fork 47
/
Pagination.stories.tsx
97 lines (77 loc) · 2.54 KB
/
Pagination.stories.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import { useEffect, useState } from 'react';
import { Meta } from '@storybook/react';
import { usePagination } from 'agnostic-helpers/dist/index.esm';
import { NavigationLabels, Pagination } from '../Pagination';
export default {
title: 'AG—React (Beta)/Pagination',
component: Pagination,
} as Meta;
export const Default = () => {
const [page, setPage] = useState(1);
const paging = usePagination({ offset: 2 });
const pages = paging.generate(page, 20);
useEffect(() => {
paging.generate(page, 20);
}, [page, pages, paging]);
return (
<Pagination
onPageChange={setPage}
current={page}
pages={pages}
ariaLabel="Pagination to help navigate table"
/>
);
};
export const NoFirstLast = () => {
const [page, setPage] = useState(1);
const paging = usePagination({ offset: 2 });
const pages = paging.generate(page, 20);
useEffect(() => {
paging.generate(page, 20);
}, [page, pages, paging]);
return <Pagination isFirstLast={false} onPageChange={setPage} current={page} pages={pages} />;
};
export const Bordered = () => {
const [page, setPage] = useState(1);
const paging = usePagination({ offset: 2 });
const pages = paging.generate(page, 20);
useEffect(() => {
paging.generate(page, 20);
}, [page, pages, paging]);
return <Pagination isBordered onPageChange={setPage} current={page} pages={pages} />;
};
export const CenterJustified = () => {
const [page, setPage] = useState(1);
const paging = usePagination({ offset: 2 });
const pages = paging.generate(page, 20);
useEffect(() => {
paging.generate(page, 20);
}, [page, pages, paging]);
return <Pagination justify="center" onPageChange={setPage} current={page} pages={pages} />;
};
export const EndJustified = () => {
const [page, setPage] = useState(1);
const paging = usePagination({ offset: 2 });
const pages = paging.generate(page, 20);
useEffect(() => {
paging.generate(page, 20);
}, [page, pages, paging]);
return <Pagination justify="end" onPageChange={setPage} current={page} pages={pages} />;
};
export const CustomNavigationLabels = () => {
const [page, setPage] = useState(1);
const paging = usePagination({ offset: 2 });
const pages = paging.generate(page, 20);
useEffect(() => {
paging.generate(page, 20);
}, [page, pages, paging]);
const navLabels: NavigationLabels = {
previous: 'Previa',
next: 'Siguiente',
first: 'Primera',
last: 'Última',
};
return (
<Pagination navigationLabels={navLabels} onPageChange={setPage} current={page} pages={pages} />
);
};