import React, { useState, useEffect } from 'react'; import { Key, Save, Check, Trash2, X } from 'lucide-react'; interface ApiKeyModalProps { isOpen: boolean; onClose: () => void; } export const ApiKeyModal: React.FC = ({ isOpen, onClose }) => { const [key, setKey] = useState(''); const [saved, setSaved] = useState(false); useEffect(() => { const storedKey = localStorage.getItem('gemini_api_key'); if (storedKey) { setKey(storedKey); setSaved(true); } }, [isOpen]); const handleSave = () => { if (key.trim()) { localStorage.setItem('gemini_api_key', key.trim()); setSaved(true); // Optional: Trigger a storage event for immediate UI updates elsewhere if needed window.dispatchEvent(new Event('storage')); onClose(); } }; const handleClear = () => { localStorage.removeItem('gemini_api_key'); setKey(''); setSaved(false); window.dispatchEvent(new Event('storage')); }; if (!isOpen) return null; return (
{/* Header */}

API Configuration

Bring Your Own Key (Beta Mode)

{/* Body */}

Why use your own key?
Using your personal Google Gemini API key ensures strictly private usage limits and helps support the platform during this free Beta period.

setKey(e.target.value)} placeholder="AIzaSy..." className="w-full bg-black/40 border border-stone-700 rounded-lg px-4 py-3 text-stone-200 placeholder-stone-600 focus:outline-none focus:ring-2 focus:ring-emerald-500/50 focus:border-emerald-500 transition-all font-mono text-sm" />
Get a key from Google AI Studio {saved && ( )}
{/* Footer */}
); };