2022-12-26 01:48:40 -08:00
|
|
|
import {
|
|
|
|
|
Pagination as MantinePagination,
|
|
|
|
|
PaginationProps as MantinePaginationProps,
|
|
|
|
|
} from '@mantine/core';
|
2022-12-26 00:49:11 -08:00
|
|
|
import styled from 'styled-components';
|
|
|
|
|
|
2022-12-26 01:48:40 -08:00
|
|
|
const StyledPagination = styled(MantinePagination)<PaginationProps>`
|
2022-12-26 00:49:11 -08:00
|
|
|
& .mantine-Pagination-item {
|
|
|
|
|
color: var(--btn-default-fg);
|
|
|
|
|
background-color: var(--btn-default-bg);
|
|
|
|
|
border: none;
|
|
|
|
|
transition: background 0.2s ease-in-out, color 0.2s ease-in-out;
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
color: var(--btn-default-fg-hover);
|
|
|
|
|
background-color: var(--btn-default-bg-hover);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&[data-active] {
|
|
|
|
|
color: var(--btn-primary-fg);
|
|
|
|
|
background-color: var(--btn-primary-bg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&:hover &[data-active] {
|
|
|
|
|
color: var(--btn-primary-fg-hover);
|
|
|
|
|
background-color: var(--btn-primary-bg-hover);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&[data-dots] {
|
2022-12-26 01:48:40 -08:00
|
|
|
display: ${({ $hideDividers }) => ($hideDividers ? 'none' : 'block')};
|
2022-12-26 00:49:11 -08:00
|
|
|
background-color: transparent;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
`;
|
|
|
|
|
|
2022-12-26 01:48:40 -08:00
|
|
|
interface PaginationProps extends MantinePaginationProps {
|
|
|
|
|
$hideDividers?: boolean;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const Pagination = ({ $hideDividers, ...props }: PaginationProps) => {
|
2022-12-26 00:49:11 -08:00
|
|
|
return (
|
|
|
|
|
<StyledPagination
|
2022-12-26 01:48:40 -08:00
|
|
|
$hideDividers={$hideDividers}
|
2022-12-26 00:49:11 -08:00
|
|
|
radius="xl"
|
|
|
|
|
size="md"
|
|
|
|
|
{...props}
|
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
};
|