@assistant-ui/react
Version:
Open-source TypeScript/React library for building production-grade AI chat experiences
25 lines (17 loc) • 744 B
text/typescript
"use client";
import { Collection } from "radix-ui/internal";
import { createContext, useContext, type RefObject } from "react";
const [collection, useThreadListCollection] =
Collection.createCollection<HTMLButtonElement>("ThreadList");
export const ThreadListCollection = collection;
export { useThreadListCollection };
type ThreadListItemFocus = {
triggerRef: RefObject<HTMLButtonElement | null>;
moreRef: RefObject<HTMLButtonElement | null>;
};
const ThreadListItemFocusContext = createContext<ThreadListItemFocus | null>(
null,
);
export const ThreadListItemFocusProvider = ThreadListItemFocusContext.Provider;
export const useThreadListItemFocus = (): ThreadListItemFocus | null =>
useContext(ThreadListItemFocusContext);