diff --git a/ui-tui/src/components/modelPicker.tsx b/ui-tui/src/components/modelPicker.tsx
index 5ee19e407c..395ad4ccae 100644
--- a/ui-tui/src/components/modelPicker.tsx
+++ b/ui-tui/src/components/modelPicker.tsx
@@ -174,13 +174,14 @@ export function ModelPicker({ gw, onCancel, onSelect, sessionId, t }: ModelPicke
Current model: {currentModel || '(unknown)'}
- {provider?.warning ? warning: {provider.warning} : null}
- {off > 0 && ↑ {off} more}
+ {provider?.warning ? `warning: ${provider.warning}` : ' '}
+ {off > 0 ? ` ↑ ${off} more` : ' '}
- {items.map((row, i) => {
+ {Array.from({ length: VISIBLE }, (_, i) => {
+ const row = items[i]
const idx = off + i
- return (
+ return row ? (
+ ) : (
+
)
})}
- {off + VISIBLE < rows.length && ↓ {rows.length - off - VISIBLE} more}
+
+ {off + VISIBLE < rows.length ? ` ↓ ${rows.length - off - VISIBLE} more` : ' '}
+
+
persist: {persistGlobal ? 'global' : 'session'} · g toggle
↑/↓ select · Enter choose · 1-9,0 quick · Esc cancel
@@ -207,13 +213,23 @@ export function ModelPicker({ gw, onCancel, onSelect, sessionId, t }: ModelPicke
{names[providerIdx] || '(unknown provider)'}
- {!models.length ? no models listed for this provider : null}
- {provider?.warning ? warning: {provider.warning} : null}
- {off > 0 && ↑ {off} more}
+ {provider?.warning ? `warning: ${provider.warning}` : ' '}
+ {off > 0 ? ` ↑ ${off} more` : ' '}
- {items.map((row, i) => {
+ {Array.from({ length: VISIBLE }, (_, i) => {
+ const row = items[i]
const idx = off + i
+ if (!row) {
+ return !models.length && i === 0 ? (
+
+ no models listed for this provider
+
+ ) : (
+
+ )
+ }
+
return (
↓ {models.length - off - VISIBLE} more}
+
+ {off + VISIBLE < models.length ? ` ↓ ${models.length - off - VISIBLE} more` : ' '}
+
+
persist: {persistGlobal ? 'global' : 'session'} · g toggle
{models.length ? '↑/↓ select · Enter switch · 1-9,0 quick · Esc back' : 'Enter/Esc back'}