react-ai-faq-chat
Version:
A smart AI-powered FAQ chatbot
34 lines (30 loc) • 992 B
text/typescript
// useAIFAQChat.ts
"use client";
import { useState, useCallback } from "react";
export function useAIFAQChat() {
const [messages, setMessages] = useState<{ text: string; user: boolean }[]>(
[]
);
const [loading, setLoading] = useState(false);
const sendMessage = useCallback(async (question: string) => {
setLoading(true);
setMessages((prev) => [...prev, { text: question, user: true }]);
try {
const res = await fetch("/api/chat", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ question }),
});
const data = await res.json();
setMessages((prev) => [
...prev,
{ text: data.answer || data.error, user: false },
]);
} catch (err: any) {
setMessages((prev) => [...prev, { text: err.message, user: false }]);
} finally {
setLoading(false);
}
}, []);
return { messages, sendMessage, loading };
}