From c0f18d7a103e6077e76775fc70d78db8894b4505 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Sat, 22 Nov 2025 20:11:45 -0800 Subject: [PATCH] add new transitions to popover/dropdown --- .../dropdown-menu/dropdown-menu.tsx | 23 +++++++++++++++- src/shared/components/popover/popover.tsx | 26 ++++++++++++++++--- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/shared/components/dropdown-menu/dropdown-menu.tsx b/src/shared/components/dropdown-menu/dropdown-menu.tsx index 814bd26cc..f07166771 100644 --- a/src/shared/components/dropdown-menu/dropdown-menu.tsx +++ b/src/shared/components/dropdown-menu/dropdown-menu.tsx @@ -24,6 +24,26 @@ type MenuDropdownProps = MantineMenuDropdownProps; type MenuLabelProps = MantineMenuLabelProps; type MenuProps = MantineMenuProps; +const getTransition = (position?: string) => { + if (position?.includes('top')) { + return 'fade-up'; + } + + if (position?.includes('bottom')) { + return 'fade-down'; + } + + if (position?.includes('left')) { + return 'fade-left'; + } + + if (position?.includes('right')) { + return 'fade-right'; + } + + return 'fade'; +}; + export const DropdownMenu = ({ children, ...props }: MenuProps) => { return ( { dropdown: styles['menu-dropdown'], itemSection: styles['menu-item-section'], }} + offset={10} transitionProps={{ - transition: 'fade', + transition: getTransition(props.position), }} withinPortal {...props} diff --git a/src/shared/components/popover/popover.tsx b/src/shared/components/popover/popover.tsx index 98d201c65..f3bc29024 100644 --- a/src/shared/components/popover/popover.tsx +++ b/src/shared/components/popover/popover.tsx @@ -10,15 +10,35 @@ import styles from './popover.module.css'; export interface PopoverDropdownProps extends MantinePopoverDropdownProps {} export interface PopoverProps extends MantinePopoverProps {} +const getTransition = (position?: string) => { + if (position?.includes('top')) { + return 'fade-up'; + } + + if (position?.includes('bottom')) { + return 'fade-down'; + } + + if (position?.includes('left')) { + return 'fade-left'; + } + + if (position?.includes('right')) { + return 'fade-right'; + } + + return 'fade'; +}; + export const Popover = ({ children, ...props }: PopoverProps) => { return (