Skip to content

Commit 207a59f

Browse files
author
Sajid Mannikeri
committed
Add input validation support to flow components
Signed-off-by: Sajid Mannikeri <sajid.mannikeri@ad.infosys.com>
1 parent 22ee26d commit 207a59f

23 files changed

Lines changed: 652 additions & 11 deletions

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
"@asgardeo/javascript": minor
3+
"@asgardeo/react": minor
4+
"@asgardeo/i18n": minor
5+
---
6+
7+
Add SDK support for declarative input validation rules on flow prompts.
8+
9+
- New `ValidationRule` and `FieldError` types in `@asgardeo/javascript`.
10+
- New framework-agnostic utilities `evaluateValidationRule` and `buildValidatorFromRules`.
11+
- `EmbeddedFlowComponent.validation` and `EmbeddedFlowResponseData.fieldErrors` added to the v2 flow models.
12+
- Wires client-side rule evaluation and server-side `fieldErrors` surfacing into `BaseSignIn`, `BaseSignUp`, `BaseAcceptInvite`, `BaseInviteUser`, `BaseRecovery`.
13+
- Adds `fieldErrors` to `SignInRenderProps` so render-prop consumers can display server-side validation errors.
14+
- Adds default validation message i18n keys (`validation.pattern.invalid`, `validation.minLength.invalid`, `validation.maxLength.invalid`) to all locale bundles.
15+
16+
Refs asgardeo/thunder#2410.

packages/i18n/src/models/i18n.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ export interface I18nTranslations {
6363

6464
/* Validation */
6565
'validations.required.field.error': string;
66+
'validation.pattern.invalid': string;
67+
'validation.minLength.invalid': string;
68+
'validation.maxLength.invalid': string;
6669

6770
/* |---------------------------------------------------------------| */
6871
/* | Widgets | */

packages/i18n/src/translations/en-US.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ const translations: I18nTranslations = {
6666

6767
/* Validation */
6868
'validations.required.field.error': 'This field is required',
69+
'validation.pattern.invalid': 'This value does not match the required format.',
70+
'validation.minLength.invalid': 'This value is too short.',
71+
'validation.maxLength.invalid': 'This value is too long.',
6972

7073
/* |---------------------------------------------------------------| */
7174
/* | Widgets | */

packages/i18n/src/translations/fr-FR.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ const translations: I18nTranslations = {
6666

6767
/* Validation */
6868
'validations.required.field.error': 'Ce champ est obligatoire',
69+
'validation.pattern.invalid': "Cette valeur ne correspond pas au format requis.",
70+
'validation.minLength.invalid': 'Cette valeur est trop courte.',
71+
'validation.maxLength.invalid': 'Cette valeur est trop longue.',
6972

7073
/* |---------------------------------------------------------------| */
7174
/* | Widgets | */

packages/i18n/src/translations/hi-IN.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ const translations: I18nTranslations = {
6666

6767
/* Validation */
6868
'validations.required.field.error': 'यह फील्ड आवश्यक है',
69+
'validation.pattern.invalid': 'यह मान आवश्यक प्रारूप से मेल नहीं खाता।',
70+
'validation.minLength.invalid': 'यह मान बहुत छोटा है।',
71+
'validation.maxLength.invalid': 'यह मान बहुत लंबा है।',
6972

7073
/* |---------------------------------------------------------------| */
7174
/* | Widgets | */

packages/i18n/src/translations/ja-JP.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ const translations: I18nTranslations = {
6666

6767
/* Validation */
6868
'validations.required.field.error': 'この項目は必須です',
69+
'validation.pattern.invalid': 'この値は必要な形式と一致しません。',
70+
'validation.minLength.invalid': 'この値は短すぎます。',
71+
'validation.maxLength.invalid': 'この値は長すぎます。',
6972

7073
/* |---------------------------------------------------------------| */
7174
/* | Widgets | */

packages/i18n/src/translations/pt-BR.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ const translations: I18nTranslations = {
6666

6767
/* Validation */
6868
'validations.required.field.error': 'Este campo é obrigatório',
69+
'validation.pattern.invalid': 'Este valor não corresponde ao formato necessário.',
70+
'validation.minLength.invalid': 'Este valor é muito curto.',
71+
'validation.maxLength.invalid': 'Este valor é muito longo.',
6972

7073
/* |---------------------------------------------------------------| */
7174
/* | Widgets | */

packages/i18n/src/translations/pt-PT.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ const translations: I18nTranslations = {
6666

6767
/* Validation */
6868
'validations.required.field.error': 'Este campo é obrigatório',
69+
'validation.pattern.invalid': 'Este valor não corresponde ao formato necessário.',
70+
'validation.minLength.invalid': 'Este valor é demasiado curto.',
71+
'validation.maxLength.invalid': 'Este valor é demasiado longo.',
6972

7073
/* |---------------------------------------------------------------| */
7174
/* | Widgets | */

packages/i18n/src/translations/si-LK.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ const translations: I18nTranslations = {
6666

6767
/* Validation */
6868
'validations.required.field.error': 'මෙම ක්ෂේත්‍රය අවශ්‍යයි',
69+
'validation.pattern.invalid': 'මෙම අගය අවශ්‍ය ආකෘතියට නොගැලපේ.',
70+
'validation.minLength.invalid': 'මෙම අගය ඉතා කෙටියි.',
71+
'validation.maxLength.invalid': 'මෙම අගය ඉතා දිගයි.',
6972

7073
/* |---------------------------------------------------------------| */
7174
/* | Widgets | */

packages/i18n/src/translations/ta-IN.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ const translations: I18nTranslations = {
6666

6767
/* Validation */
6868
'validations.required.field.error': 'இந்த புலம் தேவை',
69+
'validation.pattern.invalid': 'இந்த மதிப்பு தேவையான வடிவத்துடன் பொருந்தவில்லை.',
70+
'validation.minLength.invalid': 'இந்த மதிப்பு மிகவும் குறுகியது.',
71+
'validation.maxLength.invalid': 'இந்த மதிப்பு மிகவும் நீளமானது.',
6972

7073
/* |---------------------------------------------------------------| */
7174
/* | Widgets | */

0 commit comments

Comments
 (0)