import React, { useEffect, useState } from 'react'; import { createRoot } from 'react-dom/client'; // ─── Safe chrome storage wrapper ───────────────────────────────────────────── function safeStorageGet(keys: string[], callback: (result: Record) => void) { try { if (typeof chrome === 'undefined' || !chrome.runtime?.id) return; chrome.storage.local.get(keys, callback); } catch (err) { console.warn('LexAI: Extension context invalidated', err); } } function Popup() { const [configured, setConfigured] = useState(false); const [provider, setProvider] = useState(''); const [model, setModel] = useState(''); useEffect(() => { safeStorageGet(["provider", "apiKey", "model"], (result) => { if (result.apiKey) { setConfigured(true); setProvider(result.provider || 'openai'); setModel(result.model || ''); } }); }, []); const openSettings = () => { try { if (typeof chrome !== 'undefined' && chrome.runtime?.id) { chrome.runtime.openOptionsPage(); } } catch (err) { console.warn('LexAI: Extension context invalidated', err); } }; return (
LexAI
{configured ? (
✓ Active
{provider} / {model}

Select any text on a webpage to see LexAI options appear.

) : (
⚠ Setup Required
Add your API key to get started
)}
); } createRoot(document.getElementById('app')!).render();