ui-nyla/src/components/Dashboard/DashboardChat/DashboardChat.tsx
idittrich-valueon 84764f932b new dashboard
2025-07-23 10:37:07 +02:00

63 lines
No EOL
2.1 KiB
TypeScript

import React, { useState } from "react";
import { BsArrowsAngleExpand, BsArrowsAngleContract } from "react-icons/bs";
import { motion, AnimatePresence } from "framer-motion";
import { Prompt } from "../../../hooks/usePrompts";
import { useLanguage } from '../../../contexts/LanguageContext';
import DashboardChatArea from './DashboardChatArea/DashboardChatArea';
import DashboardChatHistory from './DashboardChatHistory/DashboardChatHistory';
import styles from './DashboardChat.module.css';
interface DashboardChatProps {
isExpanded: boolean;
onToggleExpand: () => void;
selectedPrompt?: Prompt | null;
onPromptUsed?: () => void;
onWorkflowIdChange?: (workflowId: string | null) => void;
onWorkflowCompletedChange?: (completed: boolean) => void;
onWorkflowResume?: (workflowId: string) => void;
}
const DashboardChat: React.FC<DashboardChatProps> = ({
isExpanded,
onToggleExpand,
selectedPrompt,
onPromptUsed,
onWorkflowIdChange,
onWorkflowCompletedChange,
onWorkflowResume
}) => {
const { t } = useLanguage();
const [activeTab, setActiveTab] = useState(t('dashboard.chat.area'));
const [resumeWorkflowId, setResumeWorkflowId] = useState<string | null>(null);
const handleWorkflowResume = (workflowId: string) => {
// Switch to Chat Area tab first
setActiveTab(t('dashboard.chat.area'));
// Set the workflow ID to resume
setResumeWorkflowId(workflowId);
// Then call the parent's resume handler
if (onWorkflowResume) {
onWorkflowResume(workflowId);
}
// Clear the resume ID after a short delay to allow processing
setTimeout(() => {
setResumeWorkflowId(null);
}, 100);
};
return (
<div className={styles.dashboard_chat}>
<DashboardChatArea
selectedPrompt={selectedPrompt}
onPromptUsed={onPromptUsed}
onWorkflowIdChange={onWorkflowIdChange}
onWorkflowCompletedChange={onWorkflowCompletedChange}
resumeWorkflowId={resumeWorkflowId}
/>
</div>
);
};
export default DashboardChat;