From e33cc96a15818c171b15f60f6f22501c8a3f814d Mon Sep 17 00:00:00 2001 From: sreehari jayaraj Date: Fri, 22 Sep 2023 15:26:16 +0000 Subject: [PATCH] feat: added support for space in email invite --- .../project/InviteProjectCollabSection.vue | 11 ++++++----- .../components/workspace/InviteSection.vue | 18 ++++++++---------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/packages/nc-gui/components/project/InviteProjectCollabSection.vue b/packages/nc-gui/components/project/InviteProjectCollabSection.vue index 95cf2b09e4..f37ab41ddf 100644 --- a/packages/nc-gui/components/project/InviteProjectCollabSection.vue +++ b/packages/nc-gui/components/project/InviteProjectCollabSection.vue @@ -26,7 +26,8 @@ const validateEmail = (email: string): boolean => { // all user input emails are stored here const emailBadges = ref>([]) watch(inviteData, (newVal) => { - if (newVal.email.includes(' ')) { + const isNewEmail = newVal.email.includes(' ') || newVal.email.includes(',') + if (isNewEmail) { if (inviteData.email.length < 1) { emailValidation.isError = true emailValidation.message = 'email should not be empty' @@ -39,11 +40,11 @@ watch(inviteData, (newVal) => { } // if email is already enterd we just ignore the input // no error is thrown - if (emailBadges.value.includes(newVal.email.split(' ')[0])) { + const emailToAdd = newVal.email.split(',')[0].trim() || newVal.email.split(' ')[0].trim() + if (emailBadges.value.includes(emailToAdd)) { inviteData.email = '' return } - const emailToAdd = newVal.email.split(' ')[0].trim() emailBadges.value.push(emailToAdd) inviteData.email = '' } @@ -167,7 +168,7 @@ onKeyStroke('Backspace', () => { // when bulk email is pasted const onPaste = (e: ClipboardEvent) => { const pastedText = e.clipboardData?.getData('text') - const inputArray = pastedText?.split(' ') + const inputArray = pastedText?.split(',') || pastedText?.split(' ') inputArray?.forEach((el) => { if (el.length < 1) { emailValidation.isError = true @@ -287,7 +288,7 @@ const onPaste = (e: ClipboardEvent) => {
diff --git a/packages/nc-gui/components/workspace/InviteSection.vue b/packages/nc-gui/components/workspace/InviteSection.vue index b876aed052..f33fb6260d 100644 --- a/packages/nc-gui/components/workspace/InviteSection.vue +++ b/packages/nc-gui/components/workspace/InviteSection.vue @@ -32,7 +32,8 @@ const { workspaceRoles } = useRoles() const emailBadges = ref>([]) watch(inviteData, (newVal) => { - if (newVal.email.includes(' ')) { + const isNewEmail = newVal.email.includes(' ') || newVal.email.includes(',') + if (isNewEmail) { if (newVal.email.length < 1) { emailValidation.isError = true emailValidation.message = 'EMAIL SHOULD NOT BE EMPTY' @@ -45,17 +46,14 @@ watch(inviteData, (newVal) => { } // if email is already enterd we just ignore the input // no error is thrown - if (emailBadges.value.includes(inviteData.email.split(' ')[0])) { - inviteData.email = '' - return - } + const emailToAdd = newVal.email.split(',')[0].trim() || newVal.email.split(' ')[0].trim() - if (newVal.email.includes(' ')) { - const emailToAdd = newVal.email.split(' ')[0].trim() - console.log(emailToAdd) - emailBadges.value.push(emailToAdd) + if (emailBadges.value.includes(emailToAdd)) { inviteData.email = '' + return } + emailBadges.value.push(emailToAdd) + inviteData.email = '' } if (newVal.email.length < 1 && emailValidation.isError) { emailValidation.isError = false @@ -129,7 +127,7 @@ onKeyStroke('Backspace', () => { // when bulk email is pasted const onPaste = (e: ClipboardEvent) => { const pastedText = e.clipboardData?.getData('text') - const inputArray = pastedText?.split(' ') + const inputArray = pastedText?.split(',') || pastedText?.split(' ') inputArray?.forEach((el) => { if (el.length < 1) { emailValidation.isError = true