diff --git a/packages/input-iban/src/validators.js b/packages/input-iban/src/validators.js index 41d0d4c2b..efa958b19 100644 --- a/packages/input-iban/src/validators.js +++ b/packages/input-iban/src/validators.js @@ -1,7 +1,7 @@ /* eslint-disable max-classes-per-file */ import { localize } from '@lion/localize'; -import { Validator } from '@lion/form-core'; +import { Unparseable, Validator } from '@lion/form-core'; import { isValidIBAN } from 'ibantools'; let loaded = false; @@ -150,7 +150,10 @@ export class IsCountryIBAN extends IsIBAN { */ static async getMessage(data) { await loadTranslations(); - return localize.msg('lion-validate+iban:error.IsCountryIBAN', data); + // If modelValue is Unparseable, the IsIBAN message is the more appropriate feedback + return data?.modelValue instanceof Unparseable + ? localize.msg('lion-validate+iban:error.IsIBAN', data) + : localize.msg('lion-validate+iban:error.IsCountryIBAN', data); } } @@ -196,10 +199,12 @@ export class IsNotCountryIBAN extends IsIBAN { const _data = { ...data, userSuppliedCountryCode: - typeof data?.modelValue === 'string' - ? data?.modelValue.slice(0, 2) - : data?.modelValue.viewValue.slice(0, 2), + typeof data?.modelValue === 'string' ? data?.modelValue.slice(0, 2) : '', }; - return localize.msg('lion-validate+iban:error.IsNotCountryIBAN', _data); + + // If modelValue is Unparseable, the IsIBAN message is the more appropriate feedback + return data?.modelValue instanceof Unparseable + ? localize.msg('lion-validate+iban:error.IsIBAN', _data) + : localize.msg('lion-validate+iban:error.IsNotCountryIBAN', _data); } }