mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-17 05:45:51 +00:00
48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import React from 'react';
|
|
import { Text } from '@anthropic/ink';
|
|
import { Select } from './CustomSelect/index.js';
|
|
import { Dialog } from '@anthropic/ink';
|
|
|
|
export type ChannelDowngradeChoice = 'downgrade' | 'stay' | 'cancel';
|
|
|
|
type Props = {
|
|
currentVersion: string;
|
|
onChoice: (choice: ChannelDowngradeChoice) => void;
|
|
};
|
|
|
|
/**
|
|
* Dialog shown when switching from latest to stable channel.
|
|
* Allows user to choose whether to downgrade or stay on current version.
|
|
*/
|
|
export function ChannelDowngradeDialog({ currentVersion, onChoice }: Props): React.ReactNode {
|
|
function handleSelect(value: ChannelDowngradeChoice): void {
|
|
onChoice(value);
|
|
}
|
|
|
|
function handleCancel(): void {
|
|
onChoice('cancel');
|
|
}
|
|
|
|
return (
|
|
<Dialog title="Switch to Stable Channel" onCancel={handleCancel} color="permission" hideBorder hideInputGuide>
|
|
<Text>
|
|
The stable channel may have an older version than what you're currently running ({currentVersion}).
|
|
</Text>
|
|
<Text dimColor>How would you like to handle this?</Text>
|
|
<Select
|
|
options={[
|
|
{
|
|
label: 'Allow possible downgrade to stable version',
|
|
value: 'downgrade' as ChannelDowngradeChoice,
|
|
},
|
|
{
|
|
label: `Stay on current version (${currentVersion}) until stable catches up`,
|
|
value: 'stay' as ChannelDowngradeChoice,
|
|
},
|
|
]}
|
|
onChange={handleSelect}
|
|
/>
|
|
</Dialog>
|
|
);
|
|
}
|