Files
InteractiveAvatarNextJSDemo/components/logic/useConversationState.ts
Vlad Morozov a3cdf46210 update demo
2025-04-22 19:38:59 +03:00

27 lines
655 B
TypeScript

import { useCallback } from "react";
import { useStreamingAvatarContext } from "./context";
export const useConversationState = () => {
const { avatarRef, isAvatarTalking, isUserTalking, isListening } =
useStreamingAvatarContext();
const startListening = useCallback(() => {
if (!avatarRef.current) return;
avatarRef.current.startListening();
}, [avatarRef]);
const stopListening = useCallback(() => {
if (!avatarRef.current) return;
avatarRef.current.stopListening();
}, [avatarRef]);
return {
isAvatarListening: isListening,
startListening,
stopListening,
isUserTalking,
isAvatarTalking,
};
};