@vertesia/react
Version:
React helpers for Composable AI
24 lines • 838 B
JavaScript
import { useMemo, useState } from "react";
export function useInteractionStreaming(interaction) {
const [isRunning, setRunning] = useState(false);
const [text, setText] = useState('');
const execute = useMemo(() => (payload) => {
if (isRunning) {
return Promise.reject(new Error('Trying to run the interaction while it is already running.'));
}
setRunning(true);
let chunks = [];
return interaction.execute(payload, (chunk) => {
chunks.push(chunk);
setText(chunks.join(''));
}).then(run => {
setText('');
setRunning(false);
return run;
}).finally(() => {
chunks = [];
});
}, []);
return { text, isRunning, execute };
}
//# sourceMappingURL=useInteractionStreaming.js.map