aboutsummaryrefslogtreecommitdiffstats
path: root/packages/excalidraw/components/dropdownMenu/DropdownMenuTrigger.tsx
diff options
context:
space:
mode:
authorkj_sh6042026-03-15 16:19:35 -0400
committerkj_sh6042026-03-15 16:19:35 -0400
commit6ec259a0e71174651bae95d4628138bf6fd68742 (patch)
tree5e33c6a5ec091ecabfcb257fdc7b6a88ed8754ac /packages/excalidraw/components/dropdownMenu/DropdownMenuTrigger.tsx
parent16c8578b15c727f22921f8a80a56ee4d4e7f2272 (diff)
refactor: packages/
Diffstat (limited to 'packages/excalidraw/components/dropdownMenu/DropdownMenuTrigger.tsx')
-rw-r--r--packages/excalidraw/components/dropdownMenu/DropdownMenuTrigger.tsx40
1 files changed, 40 insertions, 0 deletions
diff --git a/packages/excalidraw/components/dropdownMenu/DropdownMenuTrigger.tsx b/packages/excalidraw/components/dropdownMenu/DropdownMenuTrigger.tsx
new file mode 100644
index 0000000..e7369ba
--- /dev/null
+++ b/packages/excalidraw/components/dropdownMenu/DropdownMenuTrigger.tsx
@@ -0,0 +1,40 @@
+import clsx from "clsx";
+import { useDevice } from "../App";
+
+const MenuTrigger = ({
+ className = "",
+ children,
+ onToggle,
+ title,
+ ...rest
+}: {
+ className?: string;
+ children: React.ReactNode;
+ onToggle: () => void;
+ title?: string;
+} & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">) => {
+ const device = useDevice();
+ const classNames = clsx(
+ `dropdown-menu-button ${className}`,
+ "zen-mode-transition",
+ {
+ "dropdown-menu-button--mobile": device.editor.isMobile,
+ },
+ ).trim();
+ return (
+ <button
+ data-prevent-outside-click
+ className={classNames}
+ onClick={onToggle}
+ type="button"
+ data-testid="dropdown-menu-button"
+ title={title}
+ {...rest}
+ >
+ {children}
+ </button>
+ );
+};
+
+export default MenuTrigger;
+MenuTrigger.displayName = "DropdownMenuTrigger";