cflx 0.6.11

Conflux – a spec-driven parallel coding orchestrator that runs AI agents on git worktrees
import React, { useEffect, useRef } from 'react';
import { RemoteLogEntry } from '../api/types';
import { LogEntry } from './LogEntry';

interface LogsPanelProps {
  logs: RemoteLogEntry[];
  selectedProjectId: string | null;
}

export function LogsPanel({ logs, selectedProjectId }: LogsPanelProps) {
  const scrollRef = useRef<HTMLDivElement>(null);
  const regionLabel = selectedProjectId ? 'Project logs' : 'Orchestration logs';

  useEffect(() => {
    if (scrollRef.current) {
      scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
    }
  }, [logs]);

  if (logs.length === 0) {
    return (
      <div className="flex flex-1 items-center justify-center p-8">
        <p className="text-sm text-[#52525b]">No logs yet</p>
      </div>
    );
  }

  return (
    <div
      ref={scrollRef}
      className="space-y-0.5 overflow-y-auto p-3"
      role="region"
      aria-label={regionLabel}
    >
      {logs.map((log, idx) => (
        <LogEntry
          key={`${log.timestamp}-${idx}`}
          entry={log}
          showProjectLabel={!selectedProjectId}
        />
      ))}
    </div>
  );
}