feat(wizard): add next-step button on provider form when returning

When navigating back to the provider form after already creating a
provider, show a Next button that skips to the model scan or config
layer without requiring re-submission.
This commit is contained in:
langbot-dev
2026-08-12 02:22:28 +08:00
parent c4de3c5168
commit d7a034a562
+18 -1
View File
@@ -785,6 +785,13 @@ export default function WizardPage() {
onSavedProviderFormChange={setSavedProviderForm} onSavedProviderFormChange={setSavedProviderForm}
savedSelectedModels={savedSelectedModels} savedSelectedModels={savedSelectedModels}
onSavedSelectedModelsChange={setSavedSelectedModels} onSavedSelectedModelsChange={setSavedSelectedModels}
onGoToNextLayer={() => {
if (modelsAdded) {
goToStep2Layer(4);
} else {
goToStep2Layer(3);
}
}}
runnerConfigItems={selectedRunnerConfigItems} runnerConfigItems={selectedRunnerConfigItems}
runnerConfigValues={runnerConfig} runnerConfigValues={runnerConfig}
onRunnerConfigChange={setRunnerConfig} onRunnerConfigChange={setRunnerConfig}
@@ -1309,6 +1316,7 @@ function StepAIEngine({
onSavedProviderFormChange, onSavedProviderFormChange,
savedSelectedModels, savedSelectedModels,
onSavedSelectedModelsChange, onSavedSelectedModelsChange,
onGoToNextLayer,
runnerConfigItems, runnerConfigItems,
runnerConfigValues, runnerConfigValues,
onRunnerConfigChange, onRunnerConfigChange,
@@ -1333,6 +1341,7 @@ function StepAIEngine({
onSavedProviderFormChange: (v: { name?: string; requester?: string; base_url?: string; api_key?: string }) => void; onSavedProviderFormChange: (v: { name?: string; requester?: string; base_url?: string; api_key?: string }) => void;
savedSelectedModels: Set<string>; savedSelectedModels: Set<string>;
onSavedSelectedModelsChange: (v: Set<string>) => void; onSavedSelectedModelsChange: (v: Set<string>) => void;
onGoToNextLayer: () => void;
runnerConfigItems: IDynamicFormItemSchema[]; runnerConfigItems: IDynamicFormItemSchema[];
runnerConfigValues: Record<string, unknown>; runnerConfigValues: Record<string, unknown>;
onRunnerConfigChange: (v: Record<string, unknown>) => void; onRunnerConfigChange: (v: Record<string, unknown>) => void;
@@ -1531,7 +1540,7 @@ function StepAIEngine({
{t('wizard.provider.description')} {t('wizard.provider.description')}
</p> </p>
</div> </div>
<div className="border rounded-lg p-6 bg-card"> <div className="border rounded-lg p-6 bg-card space-y-4">
<ProviderForm <ProviderForm
initialValues={savedProviderForm} initialValues={savedProviderForm}
onValuesChange={onSavedProviderFormChange} onValuesChange={onSavedProviderFormChange}
@@ -1540,6 +1549,14 @@ function StepAIEngine({
}} }}
onFormCancel={onResetModelSource} onFormCancel={onResetModelSource}
/> />
{providerCreated && (
<div className="flex justify-end pt-2 border-t">
<Button onClick={onGoToNextLayer}>
{t('wizard.next')}
<ArrowRight className="w-4 h-4 ml-1.5" />
</Button>
</div>
)}
</div> </div>
</div> </div>
); );