Files
openchamber/packages/ui/src/components/chat/StatusRowContainer.tsx
T

44 lines
1.6 KiB
TypeScript
Raw Normal View History

import React from 'react';
2026-04-05 17:29:14 +03:00
import { useAssistantStatus } from '@/hooks/useAssistantStatus';
import { useConfigStore } from '@/stores/useConfigStore';
import { getProviderModelDisplayName } from '@/lib/modelDisplay';
import { StatusRow } from './StatusRow';
/**
* Status row wrapper.
* Uses the dedicated assistant status hook so the row keeps accurate live activity
* labels while still limiting subscriptions to the active assistant message.
*/
export const StatusRowContainer: React.FC = React.memo(() => {
const { activeModel, working } = useAssistantStatus();
const currentAgentName = useConfigStore((state) => state.currentAgentName);
const providers = useConfigStore((state) => state.providers);
const modelDisplayName = React.useMemo(() => {
if (!activeModel) {
return null;
}
const provider = providers.length > 0
? providers.find((candidate) => candidate.id === activeModel.providerId)
: undefined;
return getProviderModelDisplayName(provider, activeModel.modelId) || null;
}, [activeModel, providers]);
return (
<StatusRow
isWorking={working.isWorking}
statusText={working.statusText}
isGenericStatus={working.isGenericStatus}
isWaitingForPermission={working.isWaitingForPermission}
abortActive={working.abortActive}
retryInfo={working.retryInfo}
agentName={currentAgentName}
modelName={modelDisplayName}
providerId={activeModel?.providerId ?? null}
/>
);
});
StatusRowContainer.displayName = 'StatusRowContainer';