diff --git a/src/renderer/components/team/ClaudeLogsSection.tsx b/src/renderer/components/team/ClaudeLogsSection.tsx index 6028cb0d..c349cc8b 100644 --- a/src/renderer/components/team/ClaudeLogsSection.tsx +++ b/src/renderer/components/team/ClaudeLogsSection.tsx @@ -22,6 +22,7 @@ type StreamType = 'stdout' | 'stderr'; interface ClaudeLogsSectionProps { teamName: string; + position?: 'sidebar' | 'inline'; } function isRecent(updatedAt: string | undefined): boolean { @@ -367,7 +368,10 @@ function filterStreamJsonText( return out.join('\n'); } -export const ClaudeLogsSection = ({ teamName }: ClaudeLogsSectionProps): React.JSX.Element => { +export const ClaudeLogsSection = ({ + teamName, + position = 'inline', +}: ClaudeLogsSectionProps): React.JSX.Element => { const isAlive = useStore((s) => s.selectedTeamData?.isAlive ?? false); const [loadedCount, setLoadedCount] = useState(PAGE_SIZE); const [data, setData] = useState({ lines: [], total: 0, hasMore: false }); @@ -390,6 +394,7 @@ export const ClaudeLogsSection = ({ teamName }: ClaudeLogsSectionProps): React.J kinds: new Set(DEFAULT_CLAUDE_LOGS_FILTER.kinds), })); const [filterOpen, setFilterOpen] = useState(false); + const isSidebar = position === 'sidebar'; const isNearBottom = useCallback( (scrollTop: number, scrollHeight: number, clientHeight: number) => { return scrollHeight - scrollTop - clientHeight <= LOAD_MORE_THRESHOLD_PX; @@ -571,10 +576,15 @@ export const ClaudeLogsSection = ({ teamName }: ClaudeLogsSectionProps): React.J } + icon={ + + + + } badge={badge} + headerContentClassName={isSidebar ? 'flex-wrap items-center gap-y-1 py-1' : undefined} headerExtra={ - <> + {online ? ( ) : null} {lastLogPreview ? : null} - + } defaultOpen={false} // Prevent scroll anchoring from "pulling" the parent container when logs update. diff --git a/src/renderer/components/team/TeamDetailView.tsx b/src/renderer/components/team/TeamDetailView.tsx index e1256276..3d3de3f2 100644 --- a/src/renderer/components/team/TeamDetailView.tsx +++ b/src/renderer/components/team/TeamDetailView.tsx @@ -964,9 +964,10 @@ export const TeamDetailView = ({ teamName }: TeamDetailViewProps): React.JSX.Ele >
- +
-
+
+
{/* Header */} -
+
Messages {filteredMessages.length > 0 && (