From 114ad3295ac6cecb646a4dd97f3362ea641e0403 Mon Sep 17 00:00:00 2001 From: Gabriele Marino <62339254+nubsthead@users.noreply.github.com> Date: Thu, 28 Nov 2024 10:27:55 +0100 Subject: [PATCH] fix: update email validator regex refs: CO-1638 --- src/settings/components/utils.js | 8 +++++--- src/settings/settings-view.jsx | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/settings/components/utils.js b/src/settings/components/utils.js index 072c04e9..061a36f4 100644 --- a/src/settings/components/utils.js +++ b/src/settings/components/utils.js @@ -807,8 +807,10 @@ export const differenceObject = (object, base) => { return changes(object, base); }; -export const validEmailRegex = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/; - -export const validEmail = (email) => !!validEmailRegex.test(email); +export function isValidEmail(email) { + // eslint-disable-next-line max-len, prettier/prettier, no-useless-escape + const validEmailRegex = /^(?!\.)[\p{L}\p{N}.+_\-]+@[\p{L}\p{N}.+-]+\.[\p{L}\p{N}]{2,}$/u; + return validEmailRegex.test(String(email).toLowerCase()); +} export const findLabel = (list, value) => find(list, (item) => item.value === value)?.label; diff --git a/src/settings/settings-view.jsx b/src/settings/settings-view.jsx index d73cbfab..753c5f9a 100644 --- a/src/settings/settings-view.jsx +++ b/src/settings/settings-view.jsx @@ -16,7 +16,7 @@ import { editSettings, SettingsHeader, t } from '@zextras/carbonio-shell-ui'; import { map, filter, isEqual, uniqBy } from 'lodash'; import AppleICalSettings from './apple-ical-settings'; -import { differenceObject, validEmail } from './components/utils'; +import { differenceObject, isValidEmail } from './components/utils'; import CreateAppSettings from './creating-app-settings-view'; import CustomScheduleModal from './custom-schedule-modal'; import GeneralSettingView from './general-settings-view'; @@ -254,7 +254,7 @@ export default function CalendarSettingsView() { const saveChanges = useCallback(() => { if (settingsToUpdate.zimbraPrefCalendarForwardInvitesTo) { - if (!validEmail(settingsToUpdate.zimbraPrefCalendarForwardInvitesTo)) { + if (!isValidEmail(settingsToUpdate.zimbraPrefCalendarForwardInvitesTo)) { setisEmailNotValid(!isEmailNotValid); return; }