agent-ecosystem/src/renderer/components/team/members/MemberLogStreamWithLegacyFallback.tsx
2026-05-24 15:40:31 +03:00

52 lines
1.5 KiB
TypeScript

import { useEffect, useState } from 'react';
import {
isMemberLogStreamUiEnabled,
MemberLogStreamSection,
} from '@features/member-log-stream/renderer';
import { MemberLogsTab } from './MemberLogsTab';
import type { ResolvedTeamMember } from '@shared/types';
interface MemberLogStreamWithLegacyFallbackProps {
teamName: string;
member: ResolvedTeamMember;
enabled?: boolean;
}
export const MemberLogStreamWithLegacyFallback = ({
teamName,
member,
enabled = true,
}: Readonly<MemberLogStreamWithLegacyFallbackProps>): React.JSX.Element => {
const streamUiEnabled = isMemberLogStreamUiEnabled();
const [showLegacyLogsFallback, setShowLegacyLogsFallback] = useState(false);
useEffect(() => {
setShowLegacyLogsFallback(false);
}, [member.name, streamUiEnabled, teamName]);
if (!streamUiEnabled) {
return <MemberLogsTab teamName={teamName} memberName={member.name} />;
}
return (
<div className="space-y-4">
<MemberLogStreamSection
teamName={teamName}
member={member}
enabled={enabled}
onInitialLoadErrorChange={setShowLegacyLogsFallback}
/>
{showLegacyLogsFallback ? (
<div className="rounded-md border border-[var(--color-border)] p-3">
<div className="mb-3 text-xs font-semibold uppercase text-[var(--color-text-muted)]">
Legacy Logs Fallback
</div>
<MemberLogsTab teamName={teamName} memberName={member.name} />
</div>
) : null}
</div>
);
};