Skip to content

Commit 57215db

Browse files
committed
feat(CPagination): add align property to set the alignment of component
1 parent 357772a commit 57215db

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

docs/4.0/components/pagination.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ Fancy larger or smaller pagination? Add `size="lg"` or `size="sm"` for additiona
150150
Change the alignment of pagination components with [flexbox utilities](https://coreui.io/docs/utilities/flex/).
151151

152152
<Example>
153-
<CPagination className="justify-content-center" aria-label="Page navigation example">
153+
<CPagination align="center" aria-label="Page navigation example">
154154
<CPaginationItem disabled>Previous</CPaginationItem>
155155
<CPaginationItem>1</CPaginationItem>
156156
<CPaginationItem>2</CPaginationItem>
@@ -160,7 +160,7 @@ Change the alignment of pagination components with [flexbox utilities](https://c
160160
</Example>
161161

162162
```jsx
163-
<CPagination className="justify-content-center" aria-label="Page navigation example">
163+
<CPagination align="center" aria-label="Page navigation example">
164164
<CPaginationItem disabled>Previous</CPaginationItem>
165165
<CPaginationItem>1</CPaginationItem>
166166
<CPaginationItem>2</CPaginationItem>
@@ -170,7 +170,7 @@ Change the alignment of pagination components with [flexbox utilities](https://c
170170
```
171171

172172
<Example>
173-
<CPagination className="justify-content-end" aria-label="Page navigation example">
173+
<CPagination align="end" aria-label="Page navigation example">
174174
<CPaginationItem disabled>Previous</CPaginationItem>
175175
<CPaginationItem>1</CPaginationItem>
176176
<CPaginationItem>2</CPaginationItem>
@@ -180,7 +180,7 @@ Change the alignment of pagination components with [flexbox utilities](https://c
180180
</Example>
181181

182182
```jsx
183-
<CPagination className="justify-content-end" aria-label="Page navigation example">
183+
<CPagination align="end" aria-label="Page navigation example">
184184
<CPaginationItem disabled>Previous</CPaginationItem>
185185
<CPaginationItem>1</CPaginationItem>
186186
<CPaginationItem>2</CPaginationItem>

src/components/pagination/CPagination.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ import PropTypes from 'prop-types'
33
import classNames from 'classnames'
44

55
export interface CPaginationProps extends HTMLAttributes<HTMLUListElement> {
6+
/**
7+
* Set the alignment of pagination components. [docs]
8+
*/
9+
align?: 'start' | 'center' | 'end'
610
/**
711
* A string of all className you want applied to the base component. [docs]
812
*/
@@ -14,8 +18,15 @@ export interface CPaginationProps extends HTMLAttributes<HTMLUListElement> {
1418
}
1519

1620
export const CPagination = forwardRef<HTMLUListElement, CPaginationProps>(
17-
({ children, className, size, ...rest }, ref) => {
18-
const _className = classNames('pagination', { [`pagination-${size}`]: size }, className)
21+
({ children, align, className, size, ...rest }, ref) => {
22+
const _className = classNames(
23+
'pagination',
24+
{
25+
[`justify-content-${align}`]: align,
26+
[`pagination-${size}`]: size,
27+
},
28+
className,
29+
)
1930
return (
2031
<nav ref={ref} {...rest}>
2132
<ul className={_className}>{children}</ul>
@@ -25,6 +36,7 @@ export const CPagination = forwardRef<HTMLUListElement, CPaginationProps>(
2536
)
2637

2738
CPagination.propTypes = {
39+
align: PropTypes.oneOf(['start', 'center', 'end']),
2840
children: PropTypes.node,
2941
className: PropTypes.string,
3042
size: PropTypes.oneOf(['sm', 'lg']),

0 commit comments

Comments
 (0)