agent-ecosystem/src/renderer/components/team/taskLogs/TaskLogsPanel.tsx
2026-04-13 17:00:49 +03:00

55 lines
1.8 KiB
TypeScript

import { ExecutionSessionsSection } from './ExecutionSessionsSection';
import { isBoardTaskActivityUiEnabled, isBoardTaskExactLogsUiEnabled } from './featureGates';
import { TaskActivitySection } from './TaskActivitySection';
import { TaskLogStreamSection } from './TaskLogStreamSection';
import type { TeamTaskWithKanban } from '@shared/types';
interface TaskLogsPanelProps {
teamName: string;
task: TeamTaskWithKanban;
taskSince?: string;
isExecutionRefreshing?: boolean;
isExecutionPreviewOnline?: boolean;
onRefreshingChange?: (isRefreshing: boolean) => void;
showSubagentPreview?: boolean;
showLeadPreview?: boolean;
onPreviewOnlineChange?: (isOnline: boolean) => void;
}
export const TaskLogsPanel = ({
teamName,
task,
taskSince,
isExecutionRefreshing = false,
isExecutionPreviewOnline = false,
onRefreshingChange,
showSubagentPreview = false,
showLeadPreview = false,
onPreviewOnlineChange,
}: TaskLogsPanelProps): React.JSX.Element => {
return (
<div className="space-y-4">
{isBoardTaskActivityUiEnabled() ? (
<TaskActivitySection teamName={teamName} taskId={task.id} />
) : null}
{isBoardTaskExactLogsUiEnabled() ? (
<TaskLogStreamSection teamName={teamName} taskId={task.id} />
) : null}
<ExecutionSessionsSection
teamName={teamName}
taskId={task.id}
taskOwner={task.owner}
taskStatus={task.status}
taskWorkIntervals={task.workIntervals}
taskSince={taskSince}
isRefreshing={isExecutionRefreshing}
isPreviewOnline={isExecutionPreviewOnline}
onRefreshingChange={onRefreshingChange}
showSubagentPreview={showSubagentPreview}
showLeadPreview={showLeadPreview}
onPreviewOnlineChange={onPreviewOnlineChange}
/>
</div>
);
};