feat: ai samples impl text gen/chat#1070
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces a modular React and Vite-based application showcasing Firebase AI capabilities, including text generation and multi-turn chat. Feedback on the changes highlights several critical issues: an invalid model name ('gemini-3.5-flash') is used across multiple service files, which will cause runtime failures; the Chat view lacks error handling during initialization, potentially leading to application crashes; Firebase configuration values are hardcoded instead of using environment variables; and a deprecated @types/react-router-dom dependency is present, risking type conflicts with React Router v7.
| const handleResetChat = () => { | ||
| chatSessionRef.current = startNewChat(); | ||
| setMessages([]); | ||
| setError(null); | ||
| setInput(''); | ||
| }; |
There was a problem hiding this comment.
If Firebase is not configured or fails to initialize, startNewChat() will throw an unhandled exception on mount inside useEffect, causing the entire React application to crash with a white screen. Wrapping this initialization in a try/catch block and setting the error state allows the UI to gracefully display the error.
const handleResetChat = () => {
try {
chatSessionRef.current = startNewChat();
setError(null);
} catch (err: any) {
setError(err.message || 'Failed to initialize chat session. Please check your Firebase configuration.');
}
setMessages([]);
setInput('');
};
75197b1 to
0b9284c
Compare
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Implement text-generation and chat samples. Add decoupled logic so that user can run script to start either sample.