Example
FormValues 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.
Forms.attioRecord()
A Attio record. Required by default.
Mutators
.default(value: AttioRecord)
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, attioRecords are required. This changes the behavior to allow undefined to pass validation.
.objectSlug(slug: ObjectSlug | Array<ObjectSlug>)
Limits which object types can be selected. Accepts a single object slug ("people", "companies", "deals", "users", or any custom object slug) or an array of object slugs.
Validation will fail if the user selects a record from an object type not included in the allowed list.