import React from 'react'; import { useTranslation } from 'react-i18next'; import SessionProviderLogo from '../../../SessionProviderLogo'; import NextTaskBanner from '../../../NextTaskBanner.jsx'; import { CLAUDE_MODELS, CURSOR_MODELS, CODEX_MODELS } from '../../../../../shared/modelConstants'; import type { ProjectSession, SessionProvider } from '../../../../types/app'; interface ProviderSelectionEmptyStateProps { selectedSession: ProjectSession | null; currentSessionId: string | null; provider: SessionProvider; setProvider: (next: SessionProvider) => void; textareaRef: React.RefObject; claudeModel: string; setClaudeModel: (model: string) => void; cursorModel: string; setCursorModel: (model: string) => void; codexModel: string; setCodexModel: (model: string) => void; tasksEnabled: boolean; isTaskMasterInstalled: boolean | null; onShowAllTasks?: (() => void) | null; setInput: React.Dispatch>; } export default function ProviderSelectionEmptyState({ selectedSession, currentSessionId, provider, setProvider, textareaRef, claudeModel, setClaudeModel, cursorModel, setCursorModel, codexModel, setCodexModel, tasksEnabled, isTaskMasterInstalled, onShowAllTasks, setInput, }: ProviderSelectionEmptyStateProps) { const { t } = useTranslation('chat'); // Reuse one translated prompt so task-start behavior stays consistent across empty and session states. const nextTaskPrompt = t('tasks.nextTaskPrompt', { defaultValue: 'Start the next task' }); const selectProvider = (nextProvider: SessionProvider) => { setProvider(nextProvider); localStorage.setItem('selected-provider', nextProvider); setTimeout(() => textareaRef.current?.focus(), 100); }; return (
{!selectedSession && !currentSessionId && (

{t('providerSelection.title')}

{t('providerSelection.description')}

{provider === 'claude' ? ( ) : provider === 'codex' ? ( ) : ( )}

{provider === 'claude' ? t('providerSelection.readyPrompt.claude', { model: claudeModel }) : provider === 'cursor' ? t('providerSelection.readyPrompt.cursor', { model: cursorModel }) : provider === 'codex' ? t('providerSelection.readyPrompt.codex', { model: codexModel }) : t('providerSelection.readyPrompt.default')}

{provider && tasksEnabled && isTaskMasterInstalled && (
setInput(nextTaskPrompt)} onShowAllTasks={onShowAllTasks} />
)}
)} {selectedSession && (

{t('session.continue.title')}

{t('session.continue.description')}

{tasksEnabled && isTaskMasterInstalled && (
setInput(nextTaskPrompt)} onShowAllTasks={onShowAllTasks} />
)}
)}
); }