import { whisper } from '@oliveai/ldk';
import {
NewWhisper,
UpdateWhisper,
Whisper,
WhisperComponentType
} from "@oliveai/ldk/dist/whisper"
const validateTelephone = (telephone: string) => {
const regExpLetters = /[a-zA-Z]/g
const regExpNumbers = /\d/
let [ areaCode, fristPartOfPhoneNumber, lastPartOfPhoneNumber] = telephone.split('-')
if (regExpLetters.test(telephone) ){
return [ 'ERROR', 'Input can not contain letter']
} else if (areaCode && !regExpNumbers.test(areaCode) ){
return [ 'ERROR", "Input must be Numbers']
} else if (fristPartOfPhoneNumber && !regExpNumbers.test(fristPartOfPhoneNumber) ){
return [ 'ERROR', 'Input must be Numbers']
} else if (lastPartOfPhoneNumber && !regExpNumbers.test(lastPartOfPhoneNumber) ){
return [ 'ERROR', 'Input must be Numbers']
} else {
return [ 'UPDATE', '']
}
}
const inputToPhoneNumber = (telephone: string) => {
let phoneNumber = telephone.split('-').join('')
if (phoneNumber.length > 3) {
phoneNumber = [phoneNumber.slice(0, 3), '-', phoneNumber.slice(3)].join('')
}
if (phoneNumber.length > 7) {
phoneNumber = [phoneNumber.slice(0, 7), '-', phoneNumber.slice(7)].join('')
}
return phoneNumber
}
const telephoneExampleConfig = ( (value: string, validationError: string): NewWhisper | UpdateWhisper => {
return {
label: 'Telephone Example',
components: [
{
type: WhisperComponentType.Telephone,
label: 'Telephone',
tooltip: 'Password Must be at least 8 characters and include letters and numbers',
validationError: validationError,
value: value,
onChange: (error: Error, number: string, whisper: Whisper) => {
if (error) {
console.debug(error)
}
if (validateTelephone(number)[0] === "ERROR" || number.length > 12) {
whisper.update(telephoneExampleConfig(value, validateTelephone(number)[1]))
} else {
whisper.update(telephoneExampleConfig(inputToPhoneNumber(number), validateTelephone(number)[1]))
}
}
}
]
}
})
const newTelephoneExampleConfig = (async () => {
await whisper.create(telephoneExampleConfig('', '') as NewWhisper);
})
newTelephoneExampleConfig();