forked from MapComplete/MapComplete
		
	More refactoring
This commit is contained in:
		
							parent
							
								
									5d0fe31c41
								
							
						
					
					
						commit
						41e6a2c760
					
				
					 147 changed files with 1540 additions and 1797 deletions
				
			
		
							
								
								
									
										32
									
								
								UI/InputElement/Validators/PhoneValidator.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								UI/InputElement/Validators/PhoneValidator.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,32 @@ | |||
| import { Validator } from "../ValidatedTextField" | ||||
| import { parsePhoneNumberFromString } from "libphonenumber-js" | ||||
| 
 | ||||
| export default class PhoneValidator extends Validator { | ||||
|     constructor() { | ||||
|         super("phone", "A phone number", "tel") | ||||
|     } | ||||
| 
 | ||||
|     isValid(str, country: () => string): boolean { | ||||
|         if (str === undefined) { | ||||
|             return false | ||||
|         } | ||||
|         if (str.startsWith("tel:")) { | ||||
|             str = str.substring("tel:".length) | ||||
|         } | ||||
|         let countryCode = undefined | ||||
|         if (country !== undefined) { | ||||
|             countryCode = country()?.toUpperCase() | ||||
|         } | ||||
|         return parsePhoneNumberFromString(str, countryCode)?.isValid() ?? false | ||||
|     } | ||||
| 
 | ||||
|     reformat = (str, country: () => string) => { | ||||
|         if (str.startsWith("tel:")) { | ||||
|             str = str.substring("tel:".length) | ||||
|         } | ||||
|         return parsePhoneNumberFromString( | ||||
|             str, | ||||
|             country()?.toUpperCase() as any | ||||
|         )?.formatInternational() | ||||
|     } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue