Tengo este pequeño form de mi AluraGeek
const NuevoVideo = () => {
const { register, handleSubmit, formState:{errors, isValid}, control} = useForm()
const equipmentCategory = useContext(EquipmentCategoryContext)
return(
<ContenedorFormulario>
<Title>Nuevo video</Title>
<Form onSubmit={handleSubmit((data) => {
if(isValid){
console.log(data)
return data
}
})}>
<ContainerInputs>
<Input
type="text"
{...register("title",{
required: "Este campo es requerido",
minLength: {
value: 1,
message: "Minimo un caracter en el campo de titulo"
}
})}
placeholder="title" />
{errors.title && <InputErrors>{errors.title?.message}</InputErrors>}
<Input
type="text"
{...register("video",{
required: "Este campo es requerido",
minLength: {
value: 1,
message: "Minimo un caracter en el campo de video",
}
})}
placeholder="Link video" />
{errors.video && <InputErrors>{errors.video?.message}</InputErrors>}
<Input
type="text"
{...register("image",{
required: "Este campo es requerido",
minLength: {
value: 1,
message: "Minimo un caracter en el campo de image",
}
})}
placeholder="Link image" />
{errors.image && <InputErrors>{errors.image?.message}</InputErrors>}
<Controller
control={control}
name="category"
rules={{
required: "Este campo es requerido"
}}
render={({ field: {onChange, onblur, value, name ,ref }}) => {
return <InputSelect
name={name}
ref={ref}
onBlur={onblur}
defaultValue={value}
onChange={({value}) =>{
onChange(value)
}}
placeholder="Choose an option"
options={equipmentCategory}
getOptionLabel={(e) => e.label}
getOptionValue={(e) => e.value}
/>
}} />
{errors.category && <InputErrors>{errors.category?.message}</InputErrors>}
<InputTextarea
{...register("comments",{
required: "Este campo es requerido",
minLength: {
value: 1,
message: "Minimo un caracter en el campo de comments",
}
})}
placeholder="add a comments" />
{errors.comments && <InputErrors>{errors.comments?.message}</InputErrors>}
<Input
type="text"
{...register("securityCode",{
required: "Este campo es requerido",
minLength: {
value: 1,
message: "Minimo un caracter en el campo de securityCode",
},
maxLength: {
value: 8,
message: "Maximo solo 8 caracteres en el campo de securityCode"
}
})}
placeholder="Enter a security Code (xxxxxxxx)" />
{errors.securityCode && <InputErrors>{errors.securityCode?.message}</InputErrors>}
<ContenedorBotones>
<BotonGuardar
text="save"
type="submit">
Save
</BotonGuardar>
<BotonLimpiar
text="clear"
type="reset">
Clear
</BotonLimpiar>
<BotonNuevaCategoria
text="new category">
New Category
</BotonNuevaCategoria>
</ContenedorBotones>
</ContainerInputs>
</Form>
</ContenedorFormulario>
);
}
export default NuevoVideo
no pude poner los import porque no me daba el espacio, pero necesito que al dar submit a este form los datos se me encapsulen de una forma global como en un useContext me gustaria si alguien me puede ayudar y darme esa respuesta