UNPKG

@assistant-ui/react

Version:

Typescript/React library for AI Chat

58 lines 1.51 kB
"use client"; import { jsx } from "react/jsx-runtime"; import { useEffect, useState } from "react"; import * as PopoverPrimitive from "@radix-ui/react-popover"; import { usePopoverScope } from "./scope"; import { useThreadRuntime } from "../../context"; const 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; }; const AssistantModalPrimitiveRoot = ({ __scopeAssistantModal, defaultOpen, unstable_openOnRunStart, open, onOpenChange, ...rest }) => { const scope = usePopoverScope(__scopeAssistantModal); const [modalOpen, setOpen] = useAssistantModalOpenState({ defaultOpen, unstable_openOnRunStart }); const openChangeHandler = (open2) => { onOpenChange?.(open2); setOpen(open2); }; return /* @__PURE__ */ jsx( PopoverPrimitive.Root, { ...scope, open: open === void 0 ? modalOpen : open, onOpenChange: openChangeHandler, ...rest } ); }; AssistantModalPrimitiveRoot.displayName = "AssistantModalPrimitive.Root"; export { AssistantModalPrimitiveRoot }; //# sourceMappingURL=AssistantModalRoot.js.map