import React from 'react'; import { cn } from '@/lib/utils'; import { useConfigStore } from '@/stores/useConfigStore'; import { useSessionUIStore } from '@/sync/session-ui-store'; import { useContextStore } from '@/stores/contextStore'; import { formatEffortLabel, getAgentDisplayName, getModelDisplayName } from './mobileControlsUtils'; const STATUS_CHIP_STYLE = { height: '28px', maxHeight: '28px', minHeight: '28px', }; interface StatusChipProps { onClick: () => void; className?: string; } export const StatusChip: React.FC = ({ onClick, className }) => { const currentModelId = useConfigStore((state) => state.currentModelId); const currentVariant = useConfigStore((state) => state.currentVariant); const currentAgentName = useConfigStore((state) => state.currentAgentName); const getCurrentProvider = useConfigStore((state) => state.getCurrentProvider); const getCurrentModelVariants = useConfigStore((state) => state.getCurrentModelVariants); const getVisibleAgents = useConfigStore((state) => state.getVisibleAgents); const currentSessionId = useSessionUIStore((state) => state.currentSessionId); const sessionAgentName = useContextStore((state) => currentSessionId ? state.getSessionAgentSelection(currentSessionId) : null ); const agents = getVisibleAgents(); const uiAgentName = currentSessionId ? (sessionAgentName || currentAgentName) : currentAgentName; const agentLabel = getAgentDisplayName(agents, uiAgentName); const currentProvider = getCurrentProvider(); const modelLabel = getModelDisplayName(currentProvider, currentModelId); const hasEffort = getCurrentModelVariants().length > 0; const effortLabel = hasEffort ? formatEffortLabel(currentVariant) : null; const fullLabel = [agentLabel, modelLabel, effortLabel].filter(Boolean).join(' · '); return ( ); }; export default StatusChip;