feat(validate-messages): add PhoneNumber messages
This commit is contained in:
parent
2c7bcd5f80
commit
f7df1ae822
3 changed files with 44 additions and 25 deletions
5
.changeset/spicy-bikes-visit.md
Normal file
5
.changeset/spicy-bikes-visit.md
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
'@lion/validate-messages': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
validate-messages: PhoneNumber messages
|
||||||
|
|
@ -33,7 +33,8 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@lion/form-core": "^0.16.0",
|
"@lion/form-core": "^0.16.0",
|
||||||
"@lion/localize": "^0.23.0"
|
"@lion/localize": "^0.23.0",
|
||||||
|
"@lion/input-tel": "^0.0.0"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"feedback",
|
"feedback",
|
||||||
|
|
|
||||||
|
|
@ -19,15 +19,10 @@ import {
|
||||||
MinMaxLength,
|
MinMaxLength,
|
||||||
Pattern,
|
Pattern,
|
||||||
} from '@lion/form-core';
|
} from '@lion/form-core';
|
||||||
|
import { PhoneNumber } from '@lion/input-tel';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {object} MessageData
|
* @typedef {import('@lion/form-core/types').FeedbackMessageData} FeedbackMessageData
|
||||||
* @property {*} [MessageData.modelValue]
|
|
||||||
* @property {string} [MessageData.fieldName]
|
|
||||||
* @property {*} [MessageData.formControl]
|
|
||||||
* @property {string} [MessageData.type]
|
|
||||||
* @property {Object.<string,?>} [MessageData.config]
|
|
||||||
* @property {string} [MessageData.name]
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
let loaded = false;
|
let loaded = false;
|
||||||
|
|
@ -119,7 +114,7 @@ export function loadDefaultFeedbackMessages() {
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {MessageData} data
|
* @param {FeedbackMessageData} data
|
||||||
* @returns {Promise<string|Element>}
|
* @returns {Promise<string|Element>}
|
||||||
*/
|
*/
|
||||||
const getLocalizedMessage = async data => {
|
const getLocalizedMessage = async data => {
|
||||||
|
|
@ -130,37 +125,37 @@ export function loadDefaultFeedbackMessages() {
|
||||||
return '';
|
return '';
|
||||||
};
|
};
|
||||||
|
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
Required.getMessage = async data => getLocalizedMessage(data);
|
Required.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
EqualsLength.getMessage = async data => getLocalizedMessage(data);
|
EqualsLength.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
MinLength.getMessage = async data => getLocalizedMessage(data);
|
MinLength.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
MaxLength.getMessage = async data => getLocalizedMessage(data);
|
MaxLength.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
MinMaxLength.getMessage = async data => getLocalizedMessage(data);
|
MinMaxLength.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
Pattern.getMessage = async data => getLocalizedMessage(data);
|
Pattern.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
IsEmail.getMessage = async data => getLocalizedMessage(data);
|
IsEmail.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
IsNumber.getMessage = async data => getLocalizedMessage(data);
|
IsNumber.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
MinNumber.getMessage = async data => getLocalizedMessage(data);
|
MinNumber.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
MaxNumber.getMessage = async data => getLocalizedMessage(data);
|
MaxNumber.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
MinMaxNumber.getMessage = async data => getLocalizedMessage(data);
|
MinMaxNumber.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
IsDate.getMessage = async data => getLocalizedMessage(data);
|
IsDate.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
MinDate.getMessage = async data => getLocalizedMessage(data);
|
MinDate.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
MaxDate.getMessage = async data => getLocalizedMessage(data);
|
MaxDate.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
MinMaxDate.getMessage = async data => getLocalizedMessage(data);
|
MinMaxDate.getMessage = async data => getLocalizedMessage(data);
|
||||||
/** @param {MessageData} data */
|
/** @param {FeedbackMessageData} data */
|
||||||
IsDateDisabled.getMessage = async data => getLocalizedMessage(data);
|
IsDateDisabled.getMessage = async data => getLocalizedMessage(data);
|
||||||
|
|
||||||
DefaultSuccess.getMessage = async data => {
|
DefaultSuccess.getMessage = async data => {
|
||||||
|
|
@ -170,5 +165,23 @@ export function loadDefaultFeedbackMessages() {
|
||||||
return localize.msg(`lion-validate:${key}`, data);
|
return localize.msg(`lion-validate:${key}`, data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** @param {FeedbackMessageData} data */
|
||||||
|
// @ts-ignore
|
||||||
|
PhoneNumber.getMessage = async data => {
|
||||||
|
await forMessagesToBeReady();
|
||||||
|
const { type, outcome } = data;
|
||||||
|
if (outcome === 'too-long') {
|
||||||
|
return localize.msg(`lion-validate:${type}.MaxLength`, data);
|
||||||
|
}
|
||||||
|
if (outcome === 'too-short') {
|
||||||
|
return localize.msg(`lion-validate:${type}.MinLength`, data);
|
||||||
|
}
|
||||||
|
// TODO: add a more specific message here
|
||||||
|
if (outcome === 'invalid-country-code') {
|
||||||
|
return localize.msg(`lion-validate:${type}.Pattern`, data);
|
||||||
|
}
|
||||||
|
return localize.msg(`lion-validate:${type}.Pattern`, data);
|
||||||
|
};
|
||||||
|
|
||||||
loaded = true;
|
loaded = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue