fix(ui): add trim validation for composite tier model fields

- Use z.string().trim().min(1) to reject whitespace-only models
- Apply to all 3 tiers (opus, sonnet, haiku) in both dialogs
This commit is contained in:
Tam Nhu Tran
2026-02-12 11:03:27 +07:00
parent ef77607c41
commit b6e1d0c481
2 changed files with 6 additions and 6 deletions
@@ -37,17 +37,17 @@ const compositeSchema = z.object({
tiers: z.object({ tiers: z.object({
opus: z.object({ opus: z.object({
provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }), provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }),
model: z.string().min(1, 'Model is required'), model: z.string().trim().min(1, 'Model is required'),
account: z.string().optional(), account: z.string().optional(),
}), }),
sonnet: z.object({ sonnet: z.object({
provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }), provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }),
model: z.string().min(1, 'Model is required'), model: z.string().trim().min(1, 'Model is required'),
account: z.string().optional(), account: z.string().optional(),
}), }),
haiku: z.object({ haiku: z.object({
provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }), provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }),
model: z.string().min(1, 'Model is required'), model: z.string().trim().min(1, 'Model is required'),
account: z.string().optional(), account: z.string().optional(),
}), }),
}), }),
@@ -27,17 +27,17 @@ const compositeSchema = z.object({
tiers: z.object({ tiers: z.object({
opus: z.object({ opus: z.object({
provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }), provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }),
model: z.string().min(1, 'Model is required'), model: z.string().trim().min(1, 'Model is required'),
account: z.string().optional(), account: z.string().optional(),
}), }),
sonnet: z.object({ sonnet: z.object({
provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }), provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }),
model: z.string().min(1, 'Model is required'), model: z.string().trim().min(1, 'Model is required'),
account: z.string().optional(), account: z.string().optional(),
}), }),
haiku: z.object({ haiku: z.object({
provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }), provider: z.enum(CLIPROXY_PROVIDERS, { message: 'Provider is required' }),
model: z.string().min(1, 'Model is required'), model: z.string().trim().min(1, 'Model is required'),
account: z.string().optional(), account: z.string().optional(),
}), }),
}), }),