From e609a7a416e5112b55ddeefd00abd15e9c599ca9 Mon Sep 17 00:00:00 2001 From: Rik Smit Date: Wed, 14 Aug 2019 15:15:21 +0200 Subject: [PATCH] Added the getLocaleFromPhoneNumber function --- composer.json | 2 +- helpers/utils.js | 22 ++++++++++++++++++++++ package.json | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 95f22c5..ec94f09 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "upinion/intl", "minimum-stability": "dev", - "version": "1.4.0", + "version": "1.5.0", "require": { "upinion/intl-translations": "^1.0" }, diff --git a/helpers/utils.js b/helpers/utils.js index 4cb95ee..c11ef91 100644 --- a/helpers/utils.js +++ b/helpers/utils.js @@ -117,6 +117,28 @@ const Utils = { */ getTranslations(sector) { return translations[sector]; + }, + + /** + * Return the locale that matches the phone number + * + * @param phoneNumber + * @param currentLocale + * @param returnCurrent When true it returns the current locale if there is no match. When false it returns null + * @returns {null} + */ + getLocaleFromPhoneNumber(phoneNumber, currentLocale, returnCurrent = true) { + let foundLocale = returnCurrent ? currentLocale : null; + + Object.keys(locales).forEach((localeName) => { + let e123Number = phoneNumber; + if (phoneNumber.substr(0, 1) !== '+') e123Number = `+${phoneNumber}`; + if (e123Number.indexOf(locales[localeName].callingCode) === 0) { + foundLocale = localeName; + } + }); + + return foundLocale; } }; diff --git a/package.json b/package.json index cd77922..0cbd530 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@upinion/intl", - "version": "1.4.0", + "version": "1.5.0", "description": "Everything related to the internationalization of our systems.", "main": "index.js", "repository": {