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

40 lines
1.1 KiB
TypeScript
Raw Normal View History

2022-12-19 15:59:14 -08:00
import type {
2023-07-01 19:10:05 -07:00
PopoverProps as MantinePopoverProps,
PopoverDropdownProps as MantinePopoverDropdownProps,
2022-12-19 15:59:14 -08:00
} from '@mantine/core';
import { Popover as MantinePopover } from '@mantine/core';
import styled from 'styled-components';
type PopoverProps = MantinePopoverProps;
type PopoverDropdownProps = MantinePopoverDropdownProps;
const StyledPopover = styled(MantinePopover)``;
const StyledDropdown = styled(MantinePopover.Dropdown)<PopoverDropdownProps>`
2023-07-01 19:10:05 -07:00
padding: 0.5rem;
font-family: var(--content-font-family);
2023-09-15 20:42:38 -07:00
font-size: 0.9em;
2023-07-01 19:10:05 -07:00
background-color: var(--dropdown-menu-bg);
border: var(--dropdown-menu-border);
2022-12-19 15:59:14 -08:00
`;
export const Popover = ({ children, ...props }: PopoverProps) => {
2023-07-01 19:10:05 -07:00
return (
<StyledPopover
withinPortal
styles={{
dropdown: {
filter: 'drop-shadow(0 0 5px rgb(0, 0, 0, 50%))',
},
}}
transitionProps={{ transition: 'fade' }}
2023-07-01 19:10:05 -07:00
{...props}
>
{children}
</StyledPopover>
);
2022-12-19 15:59:14 -08:00
};
Popover.Target = MantinePopover.Target;
Popover.Dropdown = StyledDropdown;