From 50dead09deee71e7ce4f7e9bfb40ad3283c172f1 Mon Sep 17 00:00:00 2001 From: Nick Misasi Date: Thu, 17 Jul 2025 10:46:54 -0400 Subject: [PATCH] [CLD-9535] [CLD-9352] Adjust useOpenSalesLink bases its query parameters on useExternalLink (#33451) * Adjust useOpenSalesLink bases its query parameters on useExternalLink * Fixes for CI --- .../common/hooks/useOpenSalesLink.ts | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/webapp/channels/src/components/common/hooks/useOpenSalesLink.ts b/webapp/channels/src/components/common/hooks/useOpenSalesLink.ts index 4f03a9cd59c..700a3fcae7d 100644 --- a/webapp/channels/src/components/common/hooks/useOpenSalesLink.ts +++ b/webapp/channels/src/components/common/hooks/useOpenSalesLink.ts @@ -7,35 +7,42 @@ import {useSelector} from 'react-redux'; import {getCloudCustomer, isCurrentLicenseCloud} from 'mattermost-redux/selectors/entities/cloud'; import {getCurrentUser} from 'mattermost-redux/selectors/entities/users'; +import {useExternalLink} from 'components/common/hooks/use_external_link'; + import {LicenseLinks} from 'utils/constants'; import {buildMMURL, goToMattermostContactSalesForm} from 'utils/contact_support_sales'; -const utmSource = 'mattermost'; +import type {GlobalState} from 'types/store'; export default function useOpenSalesLink(): [() => void, string] { const isCloud = useSelector(isCurrentLicenseCloud); const customer = useSelector(getCloudCustomer); const currentUser = useSelector(getCurrentUser); + const isCloudPreview = useSelector((state: GlobalState) => { + return state.entities?.cloud?.subscription?.is_cloud_preview === true; + }); + let customerEmail = ''; let firstName = ''; let lastName = ''; let companyName = ''; - let utmMedium = 'in-product'; - if (isCloud && customer) { + if (isCloud && customer && !isCloudPreview) { customerEmail = customer.email || ''; firstName = customer.contact_first_name || ''; lastName = customer.contact_last_name || ''; companyName = customer.name || ''; - utmMedium = 'in-product-cloud'; - } else { + } else if (!isCloudPreview) { customerEmail = currentUser?.email || ''; } - const contactSalesLink = buildMMURL(LicenseLinks.CONTACT_SALES, firstName, lastName, companyName, customerEmail, utmSource, utmMedium); - const goToSalesLinkFunc = useCallback(() => { - goToMattermostContactSalesForm(firstName, lastName, companyName, customerEmail, utmSource, utmMedium); - }, [firstName, lastName, companyName, customerEmail, utmMedium]); + const [, queryParams] = useExternalLink(LicenseLinks.CONTACT_SALES, 'contact_sales'); - return [goToSalesLinkFunc, contactSalesLink]; + const contactSalesLinkWithForm = buildMMURL(LicenseLinks.CONTACT_SALES, firstName, lastName, companyName, customerEmail, queryParams.utm_source, queryParams.utm_medium); + + const goToSalesLinkFunc = useCallback(() => { + goToMattermostContactSalesForm(firstName, lastName, companyName, customerEmail, queryParams.utm_source, queryParams.utm_medium); + }, [firstName, lastName, companyName, customerEmail, queryParams.utm_source, queryParams.utm_medium]); + + return [goToSalesLinkFunc, contactSalesLinkWithForm]; }