From b9f1013f37fdc5864dfe2f75c15251604451817f Mon Sep 17 00:00:00 2001 From: Domagoj Kriskovic Date: Mon, 14 Apr 2025 11:00:11 +0200 Subject: [PATCH] Update "collaborator-invited" analytics event (#24639) GitOrigin-RevId: e469c50dadea568032ec825fa99b33b80d0b3964 --- .../components/add-collaborators.jsx | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/services/web/frontend/js/features/share-project-modal/components/add-collaborators.jsx b/services/web/frontend/js/features/share-project-modal/components/add-collaborators.jsx index 904946775b..cad9d03177 100644 --- a/services/web/frontend/js/features/share-project-modal/components/add-collaborators.jsx +++ b/services/web/frontend/js/features/share-project-modal/components/add-collaborators.jsx @@ -94,6 +94,18 @@ export default function AddCollaborators({ readOnly }) { data = await sendInvite(projectId, email, privileges) } + const role = data?.invite?.privileges + const membersAndInvites = (members || []).concat(invites || []) + const previousEditorsAmount = membersAndInvites.filter( + member => member.privileges === 'readAndWrite' + ).length + const previousReviewersAmount = membersAndInvites.filter( + member => member.privileges === 'review' + ).length + const previousViewersAmount = membersAndInvites.filter( + member => member.privileges === 'readOnly' + ).length + sendMB('collaborator-invited', { project_id: projectId, // invitation is only populated on successful invite, meaning that for paywall and other cases this will be null @@ -101,6 +113,22 @@ export default function AddCollaborators({ readOnly }) { users_updated: !!(data.users || data.user), current_collaborators_amount: members.length, current_invites_amount: invites.length, + role, + previousEditorsAmount, + previousReviewersAmount, + previousViewersAmount, + newEditorsAmount: + role === 'readAndWrite' + ? previousEditorsAmount + 1 + : previousEditorsAmount, + newReviewersAmount: + role === 'review' + ? previousReviewersAmount + 1 + : previousReviewersAmount, + newViewersAmount: + role === 'readOnly' + ? previousViewersAmount + 1 + : previousViewersAmount, }) } catch (error) { setInFlight(false)