feat(models): add refresh control enhancements to model selection and provider connect dialogs

- Introduced `isRefreshDisabled` prop to `ModelsSelectionPanel` to control refresh button state.
- Updated `ProviderConnectDialog` to conditionally enable refresh functionality based on model support and submission status.
This commit is contained in:
Anish Sarkar 2026-07-03 10:27:48 +05:30
parent 281b66f16f
commit 4ceb5827f1
2 changed files with 7 additions and 3 deletions

View file

@ -17,6 +17,7 @@ interface ModelsSelectionPanelProps {
emptyMessage?: string;
refreshLabel?: string;
isRefreshing?: boolean;
isRefreshDisabled?: boolean;
isUpdatingModel?: boolean;
isBulkUpdating?: boolean;
onRefresh?: () => void;
@ -30,6 +31,7 @@ export function ModelsSelectionPanel({
emptyMessage = "No models available.",
refreshLabel = "Refresh models",
isRefreshing = false,
isRefreshDisabled = false,
isUpdatingModel = false,
isBulkUpdating = false,
onRefresh,
@ -74,7 +76,7 @@ export function ModelsSelectionPanel({
size="icon"
type="button"
onClick={onRefresh}
disabled={isRefreshing}
disabled={isRefreshing || isRefreshDisabled}
aria-label={refreshLabel}
>
<RefreshCw className={`h-4 w-4 ${isRefreshing ? "animate-spin" : ""}`} />

View file

@ -92,7 +92,8 @@ export function ProviderConnectDialog({
return "Select the models to enable for this provider";
})();
const canRefreshModels = !isAzure && !isVertex && (!isBedrock || canSubmit);
const supportsModelRefresh = !isAzure && !isVertex;
const canRefreshModels = supportsModelRefresh && canSubmit;
const hasEnabledModel =
previewModels.some((model) => model.enabled) || Boolean(currentDraft.seedModelId);
const canConnect = canSubmit && hasEnabledModel;
@ -136,8 +137,9 @@ export function ProviderConnectDialog({
models={previewModels}
description={modelDescription}
isRefreshing={isPreviewingModels}
isRefreshDisabled={!canRefreshModels}
refreshLabel={`Refresh ${meta.name} models`}
onRefresh={canRefreshModels ? () => onPreviewModels?.(currentDraft) : undefined}
onRefresh={supportsModelRefresh ? () => onPreviewModels?.(currentDraft) : undefined}
onToggleModel={onTogglePreviewModel}
onBulkToggle={onBulkTogglePreviewModels}
/>