import React, { useEffect, useState, useRef } from 'react'; import { GoogleGenAI } from "@google/genai"; import { FormData } from '../types'; interface AIAdvisorProps { formData: FormData; } const AIAdvisor: React.FC = ({ formData }) => { // New pitchable initial line const [advice, setAdvice] = useState("Smart recommendations tailored to your vehicle's profile."); const [isLoading, setIsLoading] = useState(false); const abortControllerRef = useRef(null); const getExpertAdvice = async (data: FormData) => { if (!data.registrationNumber && data.ncb === 0 && data.claimStatus === 'no') return; setIsLoading(true); if (abortControllerRef.current) abortControllerRef.current.abort(); abortControllerRef.current = new AbortController(); try { const ai = new GoogleGenAI({ apiKey: process.env.API_KEY || '' }); const prompt = ` You are a Senior Insurance Underwriter at Nivesh Insurance. Analyze this 2-wheeler insurance profile and provide ONE professional, concise guidance tip (max 15 words). Profile Details: - Vehicle Reg: ${data.registrationNumber || 'Not provided'} - Previous Claim: ${data.claimStatus} - Current No Claim Bonus: ${data.ncb}% - Chosen Cover: ${data.coverType} Focus on technical insurance advice like NCB protection, Zero-Dep value, or IDV optimization. Do NOT mention "AI", "Algorithms", or "Premium Discounts". Use an authoritative, professional tone. `; const response = await ai.models.generateContent({ model: 'gemini-3-flash-preview', contents: prompt, config: { temperature: 0.6, maxOutputTokens: 60, } }); const text = response.text; if (text) { setAdvice(text.trim()); } } catch (error: any) { if (error.name !== 'AbortError') { setAdvice("Maintain a consistent insurance history for seamless future claim processing."); } } finally { setIsLoading(false); } }; useEffect(() => { const handler = setTimeout(() => { getExpertAdvice(formData); }, 1200); return () => clearTimeout(handler); }, [formData.registrationNumber, formData.claimStatus, formData.ncb, formData.coverType]); return (

Smart Insight

{isLoading && Optimizing...}

{advice}

PROTECT
); }; export default AIAdvisor;