import React, { useState, useCallback, useMemo } from 'react'; import { Prompt } from '../../hooks/usePrompts'; import styles from './HomeStyles/Dashboard.module.css' import DashboardChat from '../../components/Dashboard/DashboardChat/DashboardChat'; function Dashboard () { const [isChatExpanded, setIsChatExpanded] = useState(false); const [selectedPrompt, setSelectedPrompt] = useState(null); const [isPromptAreaCollapsed, setIsPromptAreaCollapsed] = useState(false); const [currentWorkflowId, setCurrentWorkflowId] = useState(null); const [workflowCompleted, setWorkflowCompleted] = useState(false); const handleChatToggleExpand = () => { setIsChatExpanded(!isChatExpanded); }; const handlePromptRun = (prompt: Prompt) => { setSelectedPrompt(prompt); setIsPromptAreaCollapsed(true); }; const handleWorkflowIdChange = useCallback((workflowId: string | null) => { setCurrentWorkflowId(prevId => { // Reset completion status when workflow changes if (workflowId !== prevId) { setWorkflowCompleted(false); } return workflowId; }); }, [setCurrentWorkflowId, setWorkflowCompleted]); const handleWorkflowCompletedChange = useCallback((completed: boolean) => { setWorkflowCompleted(completed); }, []); const handleWorkflowResume = useCallback((workflowId: string) => { // Set the workflow ID to resume it setCurrentWorkflowId(workflowId); // Reset completion status when resuming setWorkflowCompleted(false); // Switch to Chat Area tab to show the resumed workflow }, []); // Determine CSS classes based on states return (
setSelectedPrompt(null)} onWorkflowIdChange={handleWorkflowIdChange} onWorkflowCompletedChange={handleWorkflowCompletedChange} onWorkflowResume={handleWorkflowResume} />
); } export default Dashboard;