feishin/src/renderer/components/pagination/index.tsx

53 lines
1.3 KiB
TypeScript
Raw Normal View History

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;
&[data-active] {
color: var(--btn-primary-fg);
background-color: var(--btn-primary-bg);
}
&[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-27 14:15:16 -08:00
&:hover {
color: var(--btn-default-fg-hover);
background-color: var(--btn-default-bg-hover);
&[data-active] {
color: var(--btn-primary-fg-hover);
background-color: var(--btn-primary-bg-hover);
}
&[data-dots] {
background-color: transparent;
}
}
2022-12-26 00:49:11 -08:00
}
`;
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"
{...props}
/>
);
};