From 15ca5e7fb442c796f8abef73168ecb0f4618397e Mon Sep 17 00:00:00 2001 From: Tore Brede <Tore.Brede@uib.no> Date: Mon, 4 Oct 2021 11:08:10 +0200 Subject: [PATCH] GREG-60: Adding validation of phone number --- frontend/package-lock.json | 11 +++++++++++ frontend/package.json | 1 + frontend/public/locales/en/common.json | 3 ++- frontend/public/locales/nb/common.json | 2 ++ frontend/public/locales/nn/common.json | 2 ++ frontend/src/utils/index.ts | 10 ++++++++++ 6 files changed, 28 insertions(+), 1 deletion(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index ea64e10f..aa28930f 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -29,6 +29,7 @@ "i18next": "^20.6.0", "i18next-browser-languagedetector": "^6.1.2", "i18next-http-backend": "^1.3.1", + "libphonenumber-js": "^1.9.35", "react": "^17.0.2", "react-datepicker": "^4.2.1", "react-dom": "^17.0.2", @@ -13861,6 +13862,11 @@ "node": ">= 0.8.0" } }, + "node_modules/libphonenumber-js": { + "version": "1.9.35", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.35.tgz", + "integrity": "sha512-6ok1JD4GcU7owpbp07WJZlxoGdlY538OCgN9fmOlWwCzqPNLzra7tvaFz7NJP8Hcmp1lkm97wNZ2hICN9uGylg==" + }, "node_modules/lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -33050,6 +33056,11 @@ "type-check": "~0.4.0" } }, + "libphonenumber-js": { + "version": "1.9.35", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.35.tgz", + "integrity": "sha512-6ok1JD4GcU7owpbp07WJZlxoGdlY538OCgN9fmOlWwCzqPNLzra7tvaFz7NJP8Hcmp1lkm97wNZ2hICN9uGylg==" + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", diff --git a/frontend/package.json b/frontend/package.json index 53e25d00..720dd094 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -24,6 +24,7 @@ "i18next": "^20.6.0", "i18next-browser-languagedetector": "^6.1.2", "i18next-http-backend": "^1.3.1", + "libphonenumber-js": "^1.9.35", "react": "^17.0.2", "react-datepicker": "^4.2.1", "react-dom": "^17.0.2", diff --git a/frontend/public/locales/en/common.json b/frontend/public/locales/en/common.json index f002b064..b9cdf253 100644 --- a/frontend/public/locales/en/common.json +++ b/frontend/public/locales/en/common.json @@ -48,7 +48,8 @@ "invalidIdNumber": "Invalid national ID number", "nationalIdNumberRequired": "National ID number required", "roleTypeRequired": "Role type is required", - "roleEndRequired": "Role end date is required" + "roleEndRequired": "Role end date is required", + "invalidMobilePhoneNumber": "Invalid phone number" }, "button": { "back": "Back", diff --git a/frontend/public/locales/nb/common.json b/frontend/public/locales/nb/common.json index 314af2ff..06f1daa6 100644 --- a/frontend/public/locales/nb/common.json +++ b/frontend/public/locales/nb/common.json @@ -48,6 +48,8 @@ "invalidIdNumber": "Ugyldig fødselsnummer", "nationalIdNumberRequired": "Fødselsnummer er påkrevd", "roleTypeRequired": "Rolletype er påkrevd", + "roleEndRequired": "Sluttdato for rolle er påkrevd", + "invalidMobilePhoneNumber": "Ugyldig telefonnummer" "roleEndRequired": "Sluttdato for rolle er påkrevd" }, "button": { diff --git a/frontend/public/locales/nn/common.json b/frontend/public/locales/nn/common.json index f3263eef..a04fe47e 100644 --- a/frontend/public/locales/nn/common.json +++ b/frontend/public/locales/nn/common.json @@ -49,6 +49,8 @@ "invalidIdNumber": "Ugyldig fødselsnummer", "nationalIdNumberRequired": "Fødselsnummer er påkrevd", "roleTypeRequired": "Rolletype er påkrevd", + "roleEndRequired": "Sluttdato for rolle er påkrevd", + "invalidMobilePhoneNumber": "Ugyldig telefonnummer" "roleEndRequired": "Sluttdato for rolle er påkrevd" }, "button": { diff --git a/frontend/src/utils/index.ts b/frontend/src/utils/index.ts index f269b160..d9149269 100644 --- a/frontend/src/utils/index.ts +++ b/frontend/src/utils/index.ts @@ -1,5 +1,6 @@ import validator from '@navikt/fnrvalidator' import i18n from 'i18next' +import { isValidPhoneNumber } from 'libphonenumber-js' export function getCookie(name: string) { if (!document.cookie) { @@ -50,3 +51,12 @@ export function isValidFnr(data: string | undefined): boolean | string { // TypeScript complains if toString is not used on the function result return i18n.t('common:validation.invalidIdNumber').toString() } + +export function isValidMobilePhoneNumber(data: string): boolean | string { + const valid = isValidPhoneNumber(data) + if (valid) { + return true + } + // TypeScript complains if toString is not used on the function result + return i18n.t('common:validation.invalidMobilePhoneNumber').toString() +} \ No newline at end of file -- GitLab