mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-23 02:17:11 +00:00
* fix: fixed flakiness in alert list actions - delete, edit, clone & toggle * fix: added onhover dropdown open and close
44 lines
989 B
TypeScript
44 lines
989 B
TypeScript
import './DropDown.styles.scss';
|
|
|
|
import { EllipsisOutlined } from '@ant-design/icons';
|
|
import { Button, Dropdown, MenuProps } from 'antd';
|
|
import { useIsDarkMode } from 'hooks/useDarkMode';
|
|
import { useState } from 'react';
|
|
|
|
function DropDown({ element }: { element: JSX.Element[] }): JSX.Element {
|
|
const isDarkMode = useIsDarkMode();
|
|
|
|
const items: MenuProps['items'] = element.map(
|
|
(e: JSX.Element, index: number) => ({
|
|
label: e,
|
|
key: index,
|
|
}),
|
|
);
|
|
|
|
const [isDdOpen, setDdOpen] = useState<boolean>(false);
|
|
|
|
return (
|
|
<Dropdown
|
|
menu={{
|
|
items,
|
|
onMouseEnter: (): void => setDdOpen(true),
|
|
onMouseLeave: (): void => setDdOpen(false),
|
|
}}
|
|
open={isDdOpen}
|
|
>
|
|
<Button
|
|
type="link"
|
|
className={!isDarkMode ? 'dropdown-button--dark' : 'dropdown-button'}
|
|
onClick={(e): void => {
|
|
e.preventDefault();
|
|
setDdOpen(true);
|
|
}}
|
|
>
|
|
<EllipsisOutlined className="dropdown-icon" />
|
|
</Button>
|
|
</Dropdown>
|
|
);
|
|
}
|
|
|
|
export default DropDown;
|