UNPKG

@assistant-ui/react

Version:

Typescript/React library for AI Chat

38 lines (31 loc) 1.23 kB
"use client"; import { createContext } from "react"; import { ReadonlyStore } from "../ReadonlyStore"; import { createContextHook } from "./utils/createContextHook"; import { UseBoundStore } from "zustand"; import { ContentPartRuntime } from "../../api/ContentPartRuntime"; import { createStateHookForRuntime } from "./utils/createStateHookForRuntime"; export type ContentPartContextValue = { useContentPartRuntime: UseBoundStore<ReadonlyStore<ContentPartRuntime>>; }; export const ContentPartContext = createContext<ContentPartContextValue | null>( null, ); const useContentPartContext = createContextHook( ContentPartContext, "a component passed to <MessagePrimitive.Content components={...}>", ); export function useContentPartRuntime(options?: { optional?: false | undefined; }): ContentPartRuntime; export function useContentPartRuntime(options?: { optional?: boolean | undefined; }): ContentPartRuntime | null; export function useContentPartRuntime(options?: { optional?: boolean | undefined; }) { const context = useContentPartContext(options); if (!context) return null; return context.useContentPartRuntime(); } export const useContentPart = createStateHookForRuntime(useContentPartRuntime);