/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import type React from 'react'; import { Box, Text } from 'ink'; import type { SettingScope } from '../../../config/settings.js'; import { getScopeItems } from '../../../utils/dialogScopeUtils.js'; import { RadioButtonSelect } from './RadioButtonSelect.js'; import { t } from '../../../i18n/index.js'; interface ScopeSelectorProps { /** Callback function when a scope is selected */ onSelect: (scope: SettingScope) => void; /** Callback function when a scope is highlighted */ onHighlight: (scope: SettingScope) => void; /** Whether the component is focused */ isFocused: boolean; /** The initial scope to select */ initialScope: SettingScope; } export function ScopeSelector({ onSelect, onHighlight, isFocused, initialScope, }: ScopeSelectorProps): React.JSX.Element { const scopeItems = getScopeItems().map((item) => ({ ...item, label: t(item.label), key: item.value, })); const initialIndex = scopeItems.findIndex( (item) => item.value === initialScope, ); const safeInitialIndex = initialIndex >= 0 ? initialIndex : 0; return ( {isFocused ? '> ' : ' '} {t('Apply To')} ); }