({
oauthStatus,
mode,
startingMessage,
forcedMethodMessage,
showPastePrompt,
pastedCode,
setPastedCode,
cursorOffset,
setCursorOffset,
textInputColumns,
handleSubmitCode,
setOAuthStatus,
setLoginWithClaudeAi,
onDone,
}: OAuthStatusMessageProps)
| 416 | }; |
| 417 | |
| 418 | function OAuthStatusMessage({ |
| 419 | oauthStatus, |
| 420 | mode, |
| 421 | startingMessage, |
| 422 | forcedMethodMessage, |
| 423 | showPastePrompt, |
| 424 | pastedCode, |
| 425 | setPastedCode, |
| 426 | cursorOffset, |
| 427 | setCursorOffset, |
| 428 | textInputColumns, |
| 429 | handleSubmitCode, |
| 430 | setOAuthStatus, |
| 431 | setLoginWithClaudeAi, |
| 432 | onDone, |
| 433 | }: OAuthStatusMessageProps): React.ReactNode { |
| 434 | switch (oauthStatus.state) { |
| 435 | case 'idle': |
| 436 | return ( |
| 437 | <Box flexDirection="column" gap={1} marginTop={1}> |
| 438 | <Text bold> |
| 439 | {startingMessage |
| 440 | ? startingMessage |
| 441 | : `Claude Code can be used with your Claude subscription or billed based on API usage through your Console account.`} |
| 442 | </Text> |
| 443 | |
| 444 | <Text>Select login method:</Text> |
| 445 | |
| 446 | <Box> |
| 447 | <Select |
| 448 | options={[ |
| 449 | { |
| 450 | label: ( |
| 451 | <Text> |
| 452 | Anthropic Compatible · <Text dimColor>Configure your own API endpoint</Text> |
| 453 | {'\n'} |
| 454 | </Text> |
| 455 | ), |
| 456 | value: 'custom_platform', |
| 457 | }, |
| 458 | { |
| 459 | label: ( |
| 460 | <Text> |
| 461 | OpenAI Compatible · <Text dimColor>Ollama, DeepSeek, vLLM, One API, etc.</Text> |
| 462 | {'\n'} |
| 463 | </Text> |
| 464 | ), |
| 465 | value: 'openai_chat_api', |
| 466 | }, |
| 467 | { |
| 468 | label: ( |
| 469 | <Text> |
| 470 | China LLM Providers · <Text dimColor>DeepSeek, Zhipu GLM, Qwen, MiMo</Text> |
| 471 | {'\n'} |
| 472 | </Text> |
| 473 | ), |
| 474 | value: 'china_providers', |
| 475 | }, |
nothing calls this directly
no test coverage detected