aboutsummaryrefslogtreecommitdiffstats
path: root/packages/excalidraw/components/dropdownMenu/DropdownMenu.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/excalidraw/components/dropdownMenu/DropdownMenu.tsx')
-rw-r--r--packages/excalidraw/components/dropdownMenu/DropdownMenu.tsx43
1 files changed, 43 insertions, 0 deletions
diff --git a/packages/excalidraw/components/dropdownMenu/DropdownMenu.tsx b/packages/excalidraw/components/dropdownMenu/DropdownMenu.tsx
new file mode 100644
index 0000000..8f4ce43
--- /dev/null
+++ b/packages/excalidraw/components/dropdownMenu/DropdownMenu.tsx
@@ -0,0 +1,43 @@
+import React from "react";
+import DropdownMenuTrigger from "./DropdownMenuTrigger";
+import DropdownMenuItem from "./DropdownMenuItem";
+import MenuSeparator from "./DropdownMenuSeparator";
+import DropdownMenuGroup from "./DropdownMenuGroup";
+import DropdownMenuContent from "./DropdownMenuContent";
+import DropdownMenuItemLink from "./DropdownMenuItemLink";
+import DropdownMenuItemCustom from "./DropdownMenuItemCustom";
+import {
+ getMenuContentComponent,
+ getMenuTriggerComponent,
+} from "./dropdownMenuUtils";
+
+import "./DropdownMenu.scss";
+
+const DropdownMenu = ({
+ children,
+ open,
+}: {
+ children?: React.ReactNode;
+ open: boolean;
+}) => {
+ const MenuTriggerComp = getMenuTriggerComponent(children);
+ const MenuContentComp = getMenuContentComponent(children);
+ return (
+ <>
+ {MenuTriggerComp}
+ {open && MenuContentComp}
+ </>
+ );
+};
+
+DropdownMenu.Trigger = DropdownMenuTrigger;
+DropdownMenu.Content = DropdownMenuContent;
+DropdownMenu.Item = DropdownMenuItem;
+DropdownMenu.ItemLink = DropdownMenuItemLink;
+DropdownMenu.ItemCustom = DropdownMenuItemCustom;
+DropdownMenu.Group = DropdownMenuGroup;
+DropdownMenu.Separator = MenuSeparator;
+
+export default DropdownMenu;
+
+DropdownMenu.displayName = "DropdownMenu";