pulled out the selection options in the selectInput field.

This commit is contained in:
Samuel Andert 2023-08-08 16:00:08 +02:00
parent 1f8b2db956
commit f568c83f16
4 changed files with 14 additions and 12 deletions

View File

@ -21,9 +21,7 @@
aria-invalid={$errors[field.name] ? 'true' : undefined} aria-invalid={$errors[field.name] ? 'true' : undefined}
{...constraints[field.name]} {...constraints[field.name]}
> >
<option value="apple">Apple</option> {#each field.options as option (option.value)}
<option value="banana">Banana</option> <option value={option.value}>{option.label}</option>
<option value="coconut">Coconut</option> {/each}
<option value="strawberry">Strawberry</option>
<option value="mango">Mango</option>
</select> </select>

View File

@ -10,6 +10,8 @@
export let childInput; export let childInput;
const { form, errors, field, constraints } = childInput; const { form, errors, field, constraints } = childInput;
$: console.log({ field });
</script> </script>
<input <input

View File

@ -33,7 +33,7 @@ export const UserSchema = z.object({
email: z.string().email(validationMessages.email.isEmail), email: z.string().email(validationMessages.email.isEmail),
about: z.string().max(500, validationMessages.about.maxLength), about: z.string().max(500, validationMessages.about.maxLength),
age: z.number().min(18, validationMessages.age.min).max(120, validationMessages.age.max), age: z.number().min(18, validationMessages.age.min).max(120, validationMessages.age.max),
favoriteFood: z.enum(['apple', 'banana', 'coconut', 'strawberry', 'mango']).refine(value => value !== '', validationMessages.favoriteFood.invalid), favoriteFood: z.enum(['apple', 'banana', 'coconut', 'peach', 'mango']).refine(value => value !== '', validationMessages.favoriteFood.invalid),
slider: z.number().min(0, validationMessages.slider.min).max(100, validationMessages.slider.max), slider: z.number().min(0, validationMessages.slider.min).max(100, validationMessages.slider.max),
toggle: z.boolean().refine(value => typeof value === 'boolean', validationMessages.toggle.isBoolean), toggle: z.boolean().refine(value => typeof value === 'boolean', validationMessages.toggle.isBoolean),
}).required({ }).required({

View File

@ -24,37 +24,39 @@
{ {
name: 'name', name: 'name',
type: 'text', type: 'text',
placeholder: '',
title: 'What is your name?', title: 'What is your name?',
description: 'Please enter your name' description: 'Please enter your name'
}, },
{ {
name: 'email', name: 'email',
type: 'email', type: 'email',
placeholder: '',
title: 'What is your email?', title: 'What is your email?',
description: 'Please enter your email' description: 'Please enter your email'
}, },
{ {
name: 'about', name: 'about',
type: 'textarea', type: 'textarea',
placeholder: '',
title: 'Can you tell us about yourself?', title: 'Can you tell us about yourself?',
description: 'Tell us about yourself' description: 'Tell us about yourself'
}, },
{ {
name: 'age', name: 'age',
type: 'number', type: 'number',
placeholder: '',
title: 'How old are you?', title: 'How old are you?',
description: 'Please enter your age' description: 'Please enter your age'
}, },
{ {
name: 'favoriteFood', name: 'favoriteFood',
type: 'select', type: 'select',
placeholder: '',
title: 'What is your favorite food?', title: 'What is your favorite food?',
description: 'Please select your favorite food' description: 'Please select your favorite food',
options: [
{ value: 'apple', label: 'Apple' },
{ value: 'banana', label: 'Banana' },
{ value: 'peach', label: 'Peach' },
{ value: 'coconut', label: 'Coconut' },
{ value: 'mango', label: 'Mango' }
]
} }
], ],
validators: UserSchema validators: UserSchema