import { useState, useEffect, useCallback } from "react"; import { getDocuments, clearMemory, getWorkspaces } from "./api"; import Sidebar from "./components/Sidebar"; import ChatArea from "./components/ChatArea"; import { MAINTENANCE_MODE, MAINTENANCE_MESSAGE } from "./config"; function App() { const [documents, setDocuments] = useState([]); const [evalLog, setEvalLog] = useState([]); const [briefing, setBriefing] = useState(null); const [suggestedQuestion, setSuggestedQuestion] = useState(""); const [currentWorkspace, setCurrentWorkspace] = useState("default"); const [workspaces, setWorkspaces] = useState(["default"]); const [filterDocs, setFilterDocs] = useState([]); useEffect(() => { getDocuments(currentWorkspace).then((d) => setDocuments(d.documents || [])); getWorkspaces().then((d) => setWorkspaces(d.workspaces || ["default"])); }, [currentWorkspace]); // Reset filter when workspace changes useEffect(() => { setFilterDocs([]); }, [currentWorkspace]); async function handleNewConversation() { await clearMemory(); setEvalLog([]); setBriefing(null); setSuggestedQuestion(""); window.location.reload(); } async function handleWorkspaceChange(ws) { setCurrentWorkspace(ws); setBriefing(null); setSuggestedQuestion(""); setEvalLog([]); } const handleSuggestedQuestionUsed = useCallback(() => setSuggestedQuestion(""), []); function handleFilterChange(docName) { setFilterDocs((prev) => prev.includes(docName) ? prev.filter((d) => d !== docName) : [...prev, docName] ); } return (
{MAINTENANCE_MESSAGE}
Document Intelligence