
Security News
The Code You Didn't Write Is Still Yours to Defend
AI agents are pulling packages into environments no scanner is watching, creating exposure before security teams can see it.
use-form-validation-hook
Advanced tools
``` npm i use-form-validation-hook ``` ##Usage ``` import {useForm, RULES} from 'use-form-validation-hook';
##Instalation
npm i use-form-validation-hook
##Usage
import {useForm, RULES} from 'use-form-validation-hook';
const Component = (data) => {
const initialState = {
merchants: [],
name: '',
password: '',
repeatPassword: ''
};
const validation = [
{ rules: [RULES.required], name: 'name' },
{
rules: [{ regex: (value, formValues) => !!value.length, message: "Cannot be empty" }],
name: 'merchants'
},
{ rules: [RULES.required], name: 'password' },
{ name: 'repeatPassword', matchWithField: { field: 'password' } },
];
const { values, errors, handleChange, handleSubmit, setValue } = useForm(
initialState,
validation
);
// You can use setValue if you want update fromData depending on props
useEffect(() => {
setValue(data);
}, [data])
return <form onSubmit={handleSubmit((formData) => Api.sendData(formData)}>
<Input
name="name"
label="Name"
value={values.name}
onChange={handleChange}
error={errors.name}
/>
<Input
name="password"
label="Password"
value={values.password}
onChange={handleChange}
error={errors.password}
/>
<Input
name="repeatPassword"
label="Repeat password"
value={values.repeatPassword}
onChange={handleChange}
error={errors.repeatPassword}
/>
<MultiSelect
name="merchants"
label="Merchants"
values={values.merchants}
onChange={handleChange}
error={errors.merchants}
/>
<Button
type="submit"
label="Submit"
/>
</form>
}
##Docs ###useForm takes three parameters:
initialValues - initial form values (required)validation - array of object: (optional)
[{
rules: Array<Rule>;
name: string;
matchWithField?: {
field: string;
message: string;
};
}];
// Rule - { regex: /([^\s])/, message: 'Is required'}
// regex - also can be a function to handle specific values
// matchWithField - object with field name and message (optional).
validateOnChange - boolean. (optional)validate function will be called on every change.
By default it is equal to false - validate function will be called only on submit###useForm return an object with:
values - object that contains current form values.errors - object that contains current form errors.touched - object that represent changed fields.handleChange - will update values object. Should be passed to input onChange function.
If validateOnChange equal to true. handleChange also will trigger validate function and update errorshandleSubmit - takes callback and should be passed to <form> onSubmit function. callback will be called if validation has succeed, or there is no validation.reset - will drop values and errors to initial statesetValue - use this function on special cases, when you need directly pass some value to useForm values object.triggerValidation - use this function when you want to trigger validation manuallyisValid: function - return booleanFAQs
``` npm i use-form-validation-hook ``` ##Usage ``` import {useForm, RULES} from 'use-form-validation-hook';
We found that use-form-validation-hook demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
AI agents are pulling packages into environments no scanner is watching, creating exposure before security teams can see it.

Security News
GitHub Actions checkout now blocks risky pull_request_target checkouts by default to help prevent pwn request supply chain attacks.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.