Example
FormValue
s are:
Forms.string()
A string value. Required by default.
Mutators
.default(value : string)
Sets a default value to return when no value is entered by the user.
This is NOT the same as an “initial value”, which should be passed to the
useForm()
hook..multiline()
Will cause the string input to be multiline.
A
<textarea />
rather than an <input type="text" />
in DOM-speak.url(options?: { protocol: RegExp; message?: string})
Validates that the string is a valid URL with an allowed protocol (default http/https) and a valid top-level domain. You can override the allowed protocol via options.protocol
.
.optional()
By default, strings are required. This will change that to let null
, undefined
, and ""
pass validation.
Forms.number()
A numeric value. Required by default.
Mutators
.default(value : number)
Sets a default value to return when no value is entered by the user.
This is NOT the same as an “initial value”, which should be passed to the
useForm()
hook..optional()
By default, numbers are required. This will change that to let null
and undefined
pass validation.
.min(min: number)
Provide a minimum value. Validation will fail if the user inputs number < min
.
.max(max: number)
Provide a maximum value. Validation will fail if the user inputs number > max
.
Forms.array(FormValue | Record<string, FormValue>)
An array of other form values or objects of form values.
They are referenced with a
name
prop like "addresses[0].street"
.Mutators
.optional()
By default, arrays are required. This will change that to let undefined
pass validation.
Forms.dateTime()
A date and time value. Required by default.Mutators
.default(value: Date)
Sets a default value to return when no value is entered by the user.
This is NOT the same as an “initial value,” which should be passed to the
useForm()
hook..optional()
By default, dateTimes are required. This changes the behavior to allow undefined
to pass validation.
.min(date: Date, options?: { message?: string })
Sets a minimum date. Validation will fail if the user inputs a date earlier than the given date.You can override the default error message with
options.message
.
.max(date: Date, options?: { message?: string })
Sets a maximum date. Validation will fail if the user inputs a date later than the given date.You can override the default error message with
options.message
.
Forms.plainDate()
A date string in ISO 8601 format (YYYY-MM-DD). Required by default.Mutators
.default(value: string)
Sets a default value to return when no value is entered by the user.
This is NOT the same as an “initial value,” which should be passed to the
useForm()
hook..optional()
By default, plainDates are required. This changes the behavior to allow undefined
to pass validation.