({
isOpen,
onClose,
provider,
setProvider,
model,
setModel,
isCustomModel,
setIsCustomModel,
customModel,
setCustomModel,
onApply,
isComprehensiveView,
setIsComprehensiveView,
excludedDirs = '',
setExcludedDirs,
excludedFiles = '',
setExcludedFiles,
includedDirs = '',
setIncludedDirs,
includedFiles = '',
setIncludedFiles,
showFileFilters = false,
authRequired = false,
authCode = '',
setAuthCode,
isAuthLoading,
showWikiType = true,
showTokenInput = false,
repositoryType = 'github',
}: ModelSelectionModalProps)
| 46 | } |
| 47 | |
| 48 | export default function ModelSelectionModal({ |
| 49 | isOpen, |
| 50 | onClose, |
| 51 | provider, |
| 52 | setProvider, |
| 53 | model, |
| 54 | setModel, |
| 55 | isCustomModel, |
| 56 | setIsCustomModel, |
| 57 | customModel, |
| 58 | setCustomModel, |
| 59 | onApply, |
| 60 | isComprehensiveView, |
| 61 | setIsComprehensiveView, |
| 62 | excludedDirs = '', |
| 63 | setExcludedDirs, |
| 64 | excludedFiles = '', |
| 65 | setExcludedFiles, |
| 66 | includedDirs = '', |
| 67 | setIncludedDirs, |
| 68 | includedFiles = '', |
| 69 | setIncludedFiles, |
| 70 | showFileFilters = false, |
| 71 | authRequired = false, |
| 72 | authCode = '', |
| 73 | setAuthCode, |
| 74 | isAuthLoading, |
| 75 | showWikiType = true, |
| 76 | showTokenInput = false, |
| 77 | repositoryType = 'github', |
| 78 | }: ModelSelectionModalProps) { |
| 79 | const { messages: t } = useLanguage(); |
| 80 | |
| 81 | // Local state for form values (to only apply changes when the user clicks "Submit") |
| 82 | const [localProvider, setLocalProvider] = useState(provider); |
| 83 | const [localModel, setLocalModel] = useState(model); |
| 84 | const [localIsCustomModel, setLocalIsCustomModel] = useState(isCustomModel); |
| 85 | const [localCustomModel, setLocalCustomModel] = useState(customModel); |
| 86 | const [localIsComprehensiveView, setLocalIsComprehensiveView] = useState(isComprehensiveView); |
| 87 | const [localExcludedDirs, setLocalExcludedDirs] = useState(excludedDirs); |
| 88 | const [localExcludedFiles, setLocalExcludedFiles] = useState(excludedFiles); |
| 89 | const [localIncludedDirs, setLocalIncludedDirs] = useState(includedDirs); |
| 90 | const [localIncludedFiles, setLocalIncludedFiles] = useState(includedFiles); |
| 91 | |
| 92 | // Token input state |
| 93 | const [localAccessToken, setLocalAccessToken] = useState(''); |
| 94 | const [localSelectedPlatform, setLocalSelectedPlatform] = useState<'github' | 'gitlab' | 'bitbucket'>(repositoryType); |
| 95 | const [showTokenSection, setShowTokenSection] = useState(showTokenInput); |
| 96 | |
| 97 | // Reset local state when modal is opened |
| 98 | useEffect(() => { |
| 99 | if (isOpen) { |
| 100 | setLocalProvider(provider); |
| 101 | setLocalModel(model); |
| 102 | setLocalIsCustomModel(isCustomModel); |
| 103 | setLocalCustomModel(customModel); |
| 104 | setLocalIsComprehensiveView(isComprehensiveView); |
| 105 | setLocalExcludedDirs(excludedDirs); |
nothing calls this directly
no test coverage detected