import { EditorBubble, useEditor } from "novel"; import { removeAIHighlight } from "novel/extensions"; import {} from "novel/plugins"; import React, { Fragment, type ReactNode, useEffect } from "react"; import { Button } from "../ui/button"; import Magic from "../ui/icons/magic"; import { AISelector } from "./ai-selector"; interface GenerativeMenuSwitchProps { children: ReactNode; open: boolean; onOpenChange: (open: boolean) => void; } const GenerativeMenuSwitch = ({ children, open, onOpenChange, }: GenerativeMenuSwitchProps) => { const { editor } = useEditor(); useEffect(() => { if (!open) removeAIHighlight(editor); }, [open]); return ( { onOpenChange(false); editor.chain().unsetHighlight().run(); }, }} className="flex w-fit max-w-[90vw] overflow-hidden rounded-md bg-[#1F2428] shadow-xl" > {open && } {!open && ( {children} )} ); }; function AILessBubbleMenu({ children }: { children: React.ReactNode }) { const { editor } = useEditor(); if (!editor) { return null; } return ( { editor.chain().unsetHighlight().run(); }, }} className="flex w-fit max-w-[90vw] overflow-hidden rounded-md bg-[#1F2428] shadow-xl" > {children} ); } export default AILessBubbleMenu;