MCPcopy Create free account
hub / github.com/oboard/claude-code-rev / ProviderSelectionFlow

Function ProviderSelectionFlow

src/components/ProviderPicker.tsx:154–286  ·  view source on GitHub ↗
({
  onComplete,
  onCancel,
  isStandaloneCommand,
}: ProviderSelectionFlowProps)

Source from the content-addressed store, hash-verified

152}
153
154export function ProviderSelectionFlow({
155 onComplete,
156 onCancel,
157 isStandaloneCommand,
158}: ProviderSelectionFlowProps) {
159 const mainLoopModel = useAppState(state => state.mainLoopModel)
160 const mainLoopModelForSession = useAppState(
161 state => state.mainLoopModelForSession,
162 )
163 const fastMode = useAppState(state => state.fastMode)
164 const setAppState = useSetAppState()
165 const [initialStoredProviderId] = useState(() => getStoredProviderId() ?? 'firstParty')
166 const [pendingProviderId, setPendingProviderId] = useState<string | null>(null)
167 const [pendingModel, setPendingModel] = useState<ModelSetting>(null)
168
169 const envOverrideId = getEnvironmentProviderOverrideId()
170
171 const finishSelection = React.useCallback(
172 (providerId: string, model: string | null, savedOnly: boolean) => {
173 const providerName = getProviderConfigById(providerId).name
174 const providerChanged =
175 normalizeProviderSettingValue(initialStoredProviderId) !==
176 normalizeProviderSettingValue(providerId)
177 const modelChanged =
178 !savedOnly &&
179 (mainLoopModel !== model || mainLoopModelForSession !== null)
180
181 let wasFastModeDisabled = false
182 if (!savedOnly) {
183 setAppState(prev => {
184 wasFastModeDisabled =
185 isFastModeEnabled() &&
186 !isFastModeSupportedByModel(model) &&
187 !!prev.fastMode
188
189 return {
190 ...prev,
191 mainLoopModel: model,
192 mainLoopModelForSession: null,
193 ...(wasFastModeDisabled ? { fastMode: false } : {}),
194 }
195 })
196 }
197
198 onComplete({
199 providerId,
200 providerName,
201 model,
202 changed: providerChanged || modelChanged,
203 savedOnly,
204 wasFastModeDisabled,
205 ...(envOverrideId
206 ? {
207 envOverrideId,
208 envOverrideName: getProviderConfigById(envOverrideId).name,
209 }
210 : {}),
211 })

Callers

nothing calls this directly

Calls 12

useAppStateFunction · 0.85
useSetAppStateFunction · 0.85
getStoredProviderIdFunction · 0.85
getProviderConfigByIdFunction · 0.85
isFastModeEnabledFunction · 0.85
updateSettingsForSourceFunction · 0.85
finishSelectionFunction · 0.85
getActiveProviderConfigFunction · 0.85

Tested by

no test coverage detected