'use client'; import React, { createContext, useContext, useMemo, useState } from 'react'; import type { DataUIPart } from 'ai'; import type { CustomUIDataTypes } from '@/lib/types'; interface DataStreamContextValue { dataStream: DataUIPart[]; setDataStream: React.Dispatch< React.SetStateAction[]> >; } const DataStreamContext = createContext(null); export function DataStreamProvider({ children, }: { children: React.ReactNode; }) { const [dataStream, setDataStream] = useState[]>( [], ); const value = useMemo(() => ({ dataStream, setDataStream }), [dataStream]); return ( {children} ); } export function useDataStream() { const context = useContext(DataStreamContext); if (!context) { throw new Error('useDataStream must be used within a DataStreamProvider'); } return context; }