@assistant-ui/react
Version:
Typescript/React library for AI Chat
18 lines (15 loc) • 525 B
text/typescript
"use client";
import { useMemo } from "react";
import {
type CombinedSelector,
createCombinedStore,
StoreOrRuntime,
} from "./createCombinedStore";
export const useCombinedStore = <T extends Array<unknown>, R>(
stores: { [K in keyof T]: StoreOrRuntime<T[K]> },
selector: CombinedSelector<T, R>,
): R => {
// eslint-disable-next-line react-hooks/exhaustive-deps -- shallow-compare the store array
const useCombined = useMemo(() => createCombinedStore<T, R>(stores), stores);
return useCombined(selector);
};