UNPKG

@assistant-ui/react

Version:

TypeScript/React library for AI Chat

33 lines 1.42 kB
"use client"; import { jsx as _jsx } from "react/jsx-runtime"; import { useEffect, useState } from "react"; import * as PopoverPrimitive from "@radix-ui/react-popover"; import { usePopoverScope } from "./scope.js"; import { useAssistantApi } from "../../context/index.js"; const useAssistantModalOpenState = ({ defaultOpen = false, unstable_openOnRunStart = true, }) => { const state = useState(defaultOpen); const [, setOpen] = state; const api = useAssistantApi(); useEffect(() => { if (!unstable_openOnRunStart) return undefined; return api.on("thread.run-start", () => { setOpen(true); }); }, [unstable_openOnRunStart, setOpen, api]); return state; }; export const AssistantModalPrimitiveRoot = ({ __scopeAssistantModal, defaultOpen, unstable_openOnRunStart, open, onOpenChange, ...rest }) => { const scope = usePopoverScope(__scopeAssistantModal); const [modalOpen, setOpen] = useAssistantModalOpenState({ defaultOpen, unstable_openOnRunStart, }); const openChangeHandler = (open) => { onOpenChange?.(open); setOpen(open); }; return (_jsx(PopoverPrimitive.Root, { ...scope, open: open === undefined ? modalOpen : open, onOpenChange: openChangeHandler, ...rest })); }; AssistantModalPrimitiveRoot.displayName = "AssistantModalPrimitive.Root"; //# sourceMappingURL=AssistantModalRoot.js.map