UNPKG

@assistant-ui/react

Version:

Typescript/React library for AI Chat

57 lines (56 loc) 1.57 kB
"use client"; // src/primitives/assistantModal/AssistantModalRoot.tsx import { useEffect, useState } from "react"; import * as PopoverPrimitive from "@radix-ui/react-popover"; import { composeEventHandlers } from "@radix-ui/primitive"; import { usePopoverScope } from "./scope.mjs"; import { useThreadRuntime } from "../../context/index.mjs"; import { jsx } from "react/jsx-runtime"; var useAssistantModalOpenState = ({ defaultOpen = false, unstable_openOnRunStart = true }) => { const state = useState(defaultOpen); const [, setOpen] = state; const threadRuntime = useThreadRuntime(); useEffect(() => { if (!unstable_openOnRunStart) return void 0; return threadRuntime.unstable_on("run-start", () => { setOpen(true); }); }, [ unstable_openOnRunStart, setOpen, threadRuntime, !unstable_openOnRunStart ]); return state; }; var AssistantModalPrimitiveRoot = ({ __scopeAssistantModal, defaultOpen, unstable_openOnRunStart, open, onOpenChange, ...rest }) => { const scope = usePopoverScope(__scopeAssistantModal); const [modalOpen, setOpen] = useAssistantModalOpenState({ defaultOpen, unstable_openOnRunStart }); return /* @__PURE__ */ jsx( PopoverPrimitive.Root, { ...scope, open: open === void 0 ? modalOpen : open, onOpenChange: composeEventHandlers(onOpenChange, setOpen), ...rest } ); }; AssistantModalPrimitiveRoot.displayName = "AssistantModalPrimitive.Root"; export { AssistantModalPrimitiveRoot }; //# sourceMappingURL=AssistantModalRoot.mjs.map