From 67175d9fd5069aeb428060ba4d70394f8c22e61e Mon Sep 17 00:00:00 2001 From: C Deutsch Date: Fri, 20 Mar 2026 09:41:05 -0500 Subject: [PATCH] Add `isOneOf` validation. --- demo/pages/index.tsx | 22 +++++++++++++++++++++- src/interfaces.ts | 2 ++ src/validations.ts | 3 +++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/demo/pages/index.tsx b/demo/pages/index.tsx index 9bbcc6e..aff4214 100644 --- a/demo/pages/index.tsx +++ b/demo/pages/index.tsx @@ -11,6 +11,7 @@ interface UserFormFields { firstName: string; lastName: string; email: string; + tShirtSize: string; } function getErrorText(formField: FormField, formFields: FormFields, submitting?: boolean) { @@ -19,6 +20,8 @@ function getErrorText(formField: FormField, formFields: FormFields, submitting?: return 'Required'; case 'isEmail': return 'Invalid email'; + case 'isOneOf': + return 'Must be small, medium, or large'; } } @@ -42,6 +45,13 @@ const formFieldConfigs: FormFieldConfig[] = [ isEmail: true, getHelperText: getErrorText, }, + { + name: 'tShirtSize', + label: 'T-shirt size', + required: true, + isOneOf: ['small', 'medium', 'large'], + getHelperText: getErrorText, + }, ]; export class Home extends React.Component { @@ -49,7 +59,10 @@ export class Home extends React.Component { return ( - {({ formFields: { email, firstName, lastName }, onSubmit }: FormsContextContext) => { + {({ + formFields: { email, firstName, lastName, tshirtSize }, + onSubmit, + }: FormsContextContext) => { return ( @@ -58,6 +71,13 @@ export class Home extends React.Component { + +