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

55 lines
1.4 KiB
TypeScript
Raw Normal View History

2022-12-26 01:48:40 -08:00
import {
2023-07-01 19:10:05 -07:00
Pagination as MantinePagination,
PaginationProps as MantinePaginationProps,
2022-12-26 01:48:40 -08:00
} 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>`
2023-07-01 19:10:05 -07:00
& .mantine-Pagination-item {
color: var(--btn-default-fg);
background-color: var(--btn-default-bg);
border: none;
2024-08-23 08:19:27 -07:00
transition:
background 0.2s ease-in-out,
color 0.2s ease-in-out;
2023-07-01 19:10:05 -07:00
&[data-active] {
color: var(--btn-primary-fg);
background-color: var(--btn-primary-bg);
}
&[data-dots] {
display: ${({ $hideDividers }) => ($hideDividers ? 'none' : 'block')};
background-color: transparent;
}
&: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 {
2023-07-01 19:10:05 -07:00
$hideDividers?: boolean;
2022-12-26 01:48:40 -08:00
}
export const Pagination = ({ $hideDividers, ...props }: PaginationProps) => {
2023-07-01 19:10:05 -07:00
return (
<StyledPagination
$hideDividers={$hideDividers}
radius="xl"
{...props}
/>
);
2022-12-26 00:49:11 -08:00
};