diff options
Diffstat (limited to 'packages/excalidraw/components/TTDDialog/TTDDialogTrigger.tsx')
| -rw-r--r-- | packages/excalidraw/components/TTDDialog/TTDDialogTrigger.tsx | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/packages/excalidraw/components/TTDDialog/TTDDialogTrigger.tsx b/packages/excalidraw/components/TTDDialog/TTDDialogTrigger.tsx new file mode 100644 index 0000000..a73f31a --- /dev/null +++ b/packages/excalidraw/components/TTDDialog/TTDDialogTrigger.tsx @@ -0,0 +1,35 @@ +import type { JSX } from "react"; +import type { ReactNode } from "react"; +import { useTunnels } from "../../context/tunnels"; +import DropdownMenu from "../dropdownMenu/DropdownMenu"; +import { useExcalidrawSetAppState } from "../App"; +import { brainIcon } from "../icons"; +import { t } from "../../i18n"; +import { trackEvent } from "../../analytics"; + +export const TTDDialogTrigger = ({ + children, + icon, +}: { + children?: ReactNode; + icon?: JSX.Element; +}) => { + const { TTDDialogTriggerTunnel } = useTunnels(); + const setAppState = useExcalidrawSetAppState(); + + return ( + <TTDDialogTriggerTunnel.In> + <DropdownMenu.Item + onSelect={() => { + trackEvent("ai", "dialog open", "ttd"); + setAppState({ openDialog: { name: "ttd", tab: "text-to-diagram" } }); + }} + icon={icon ?? brainIcon} + > + {children ?? t("labels.textToDiagram")} + <DropdownMenu.Item.Badge>AI</DropdownMenu.Item.Badge> + </DropdownMenu.Item> + </TTDDialogTriggerTunnel.In> + ); +}; +TTDDialogTrigger.displayName = "TTDDialogTrigger"; |
