import { useState } from 'react'; import { runQuery } from '../api/client'; import ResultCard from './ResultCard'; export default function QueryPanel({ accessToken }) { const [query, setQuery] = useState(''); const [result, setResult] = useState(null); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [showDebug, setShowDebug] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); if (!query.trim()) return; if (!accessToken) { setError('Please connect to Dropbox first to enable zero-storage queries.'); return; } setLoading(true); setError(null); try { const data = await runQuery(query, accessToken); setResult(data); if (data.error) { setError(data.error); } } catch (err) { setError(err.message); } setLoading(false); }; const handleClear = () => { setQuery(''); setResult(null); setError(null); setShowDebug(false); }; return (
{result.answer || 'No answer generated.'}
{JSON.stringify(result, null, 2)}
)}
{accessToken ? 'Enter a question above to search your indexed documents. Results will include relevant citations from your files.' : 'Connect to Dropbox and index your files first, then ask questions here. Your documents are re-fetched at query time for true zero-storage privacy.' }