From 27ea8211f36c65945ffeabc4af1aea6b2a3d36fd Mon Sep 17 00:00:00 2001 From: Antoine Clausse Date: Tue, 17 Dec 2024 11:57:04 +0100 Subject: [PATCH] Merge pull request #22575 from overleaf/revert-22473-ac-ds-nav-analytics-events Revert "[web] Update navigation events (navbar menu, new project)" GitOrigin-RevId: 9608be862e272c29ed92524ae6b8484094e8e0ff --- .../layout/navbar-marketing-bootstrap-5.pug | 22 ++------ .../web/app/views/layout/navbar-marketing.pug | 22 ++------ .../views/layout/navbar-website-redesign.pug | 22 ++------ .../js/features/event-tracking/index.js | 8 --- .../components/new-project-button.tsx | 38 +++++-------- .../components/project-list-events.ts | 54 ------------------- .../components/sidebar/sidebar-ds-nav.tsx | 20 +------ .../bootstrap-5/navbar/admin-menu.tsx | 15 +----- .../bootstrap-5/navbar/contact-us-item.tsx | 5 +- .../bootstrap-5/navbar/default-navbar.tsx | 6 ++- .../bootstrap-5/navbar/logged-in-items.tsx | 15 +----- .../bootstrap-5/navbar/logged-out-items.tsx | 13 ++--- .../navbar/nav-dropdown-from-data.tsx | 29 ++-------- .../bootstrap-5/navbar/nav-dropdown-menu.tsx | 4 +- .../bootstrap-5/navbar/nav-item-from-data.tsx | 9 +--- .../js/features/ui/components/types/navbar.ts | 5 +- 16 files changed, 55 insertions(+), 232 deletions(-) delete mode 100644 services/web/frontend/js/features/project-list/components/project-list-events.ts diff --git a/services/web/app/views/layout/navbar-marketing-bootstrap-5.pug b/services/web/app/views/layout/navbar-marketing-bootstrap-5.pug index 1f7461bfe3..ec16744a44 100644 --- a/services/web/app/views/layout/navbar-marketing-bootstrap-5.pug +++ b/services/web/app/views/layout/navbar-marketing-bootstrap-5.pug @@ -48,10 +48,6 @@ nav.navbar.navbar-default.navbar-main.navbar-expand-lg(class={ aria-expanded="false", data-bs-toggle="dropdown" role="menuitem" - event-tracking="menu-expand" - event-tracking-mb="true" - event-tracking-trigger="click" - event-segmentation={"item": "admin", "location": "top-menu"} ) | Admin span.caret @@ -88,10 +84,6 @@ nav.navbar.navbar-default.navbar-main.navbar-expand-lg(class={ aria-expanded="false", data-bs-toggle="dropdown" role="menuitem" - event-tracking="menu-expand" - event-tracking-mb="true" - event-tracking-trigger="click" - event-segmentation={"item": item.trackingKey, "location": "top-menu"} ) | !{translate(item.text)} span.caret @@ -101,7 +93,7 @@ nav.navbar.navbar-default.navbar-main.navbar-expand-lg(class={ +dropdown-menu-divider else if child.isContactUs +dropdown-menu-link-item()(data-ol-open-contact-form-modal="contact-us" data-bs-target="#contactUsModal" href data-bs-toggle="modal") - span(event-tracking="menu-click" event-tracking-mb="true" event-tracking-trigger="click" event-segmentation={"item": "contact", "location": "top-menu"}) + span(event-tracking="menu-clicked-contact" event-tracking-mb="true" event-tracking-trigger="click") | #{translate("contact_us")} else if child.url @@ -135,22 +127,22 @@ nav.navbar.navbar-default.navbar-main.navbar-expand-lg(class={ +nav-item.primary +nav-link( href="/register" - event-tracking="menu-click" + event-tracking="menu-clicked-register" event-tracking-action="clicked" event-tracking-trigger="click" event-tracking-mb="true" - event-segmentation={ page: currentUrl, item: 'register', location: 'top-menu' } + event-segmentation={ page: currentUrl } ) #{translate('sign_up')} // login link +nav-item +nav-link( href="/login" - event-tracking="menu-click" + event-tracking="menu-clicked-login" event-tracking-action="clicked" event-tracking-trigger="click" event-tracking-mb="true" - event-segmentation={ page: currentUrl, item: 'login', location: 'top-menu' } + event-segmentation={ page: currentUrl } ) #{translate('log_in')} // projects link and account menu @@ -163,10 +155,6 @@ nav.navbar.navbar-default.navbar-main.navbar-expand-lg(class={ aria-expanded="false", data-bs-toggle="dropdown" role="menuitem" - event-tracking="menu-expand" - event-tracking-mb="true" - event-tracking-trigger="click" - event-segmentation={"item": "account", "location": "top-menu"} ) | #{translate('Account')} span.caret diff --git a/services/web/app/views/layout/navbar-marketing.pug b/services/web/app/views/layout/navbar-marketing.pug index 6d011434a7..01676bbfe7 100644 --- a/services/web/app/views/layout/navbar-marketing.pug +++ b/services/web/app/views/layout/navbar-marketing.pug @@ -42,10 +42,6 @@ nav.navbar.navbar-default.navbar-main aria-haspopup="true", aria-expanded="false", data-toggle="dropdown" - event-tracking="menu-expand" - event-tracking-mb="true" - event-tracking-trigger="click" - event-segmentation={"item": "admin", "location": "top-menu"} ) | Admin span.caret @@ -89,10 +85,6 @@ nav.navbar.navbar-default.navbar-main aria-haspopup="true", aria-expanded="false", data-toggle="dropdown" - event-tracking="menu-expand" - event-tracking-mb="true" - event-tracking-trigger="click" - event-segmentation={"item": item.trackingKey, "location": "top-menu"} ) | !{translate(item.text)} span.caret @@ -103,7 +95,7 @@ nav.navbar.navbar-default.navbar-main else if child.isContactUs li a(data-ol-open-contact-form-modal="contact-us" href) - span(event-tracking="menu-click" event-tracking-mb="true" event-tracking-trigger="click" event-segmentation={"item": "contact", "location": "top-menu"}) + span(event-tracking="menu-clicked-contact" event-tracking-mb="true" event-tracking-trigger="click") | #{translate("contact_us")} else li @@ -138,22 +130,22 @@ nav.navbar.navbar-default.navbar-main li.primary a( href="/register" - event-tracking="menu-click" + event-tracking="menu-clicked-register" event-tracking-action="clicked" event-tracking-trigger="click" event-tracking-mb="true" - event-segmentation={ page: currentUrl, item: 'register', location: 'top-menu' } + event-segmentation={ page: currentUrl } ) #{translate('sign_up')} // login link li a( href="/login" - event-tracking="menu-click" + event-tracking="menu-clicked-login" event-tracking-action="clicked" event-tracking-trigger="click" event-tracking-mb="true" - event-segmentation={ page: currentUrl, item: 'login', location: 'top-menu' } + event-segmentation={ page: currentUrl } ) #{translate('log_in')} // projects link and account menu @@ -167,10 +159,6 @@ nav.navbar.navbar-default.navbar-main aria-haspopup="true", aria-expanded="false", data-toggle="dropdown" - event-tracking="menu-expand" - event-tracking-mb="true" - event-tracking-trigger="click" - event-segmentation={"item": "account", "location": "top-menu"} ) | #{translate('Account')} span.caret diff --git a/services/web/app/views/layout/navbar-website-redesign.pug b/services/web/app/views/layout/navbar-website-redesign.pug index 8b84b03576..58616f9c3e 100644 --- a/services/web/app/views/layout/navbar-website-redesign.pug +++ b/services/web/app/views/layout/navbar-website-redesign.pug @@ -42,10 +42,6 @@ nav.navbar.navbar-default.navbar-main.website-redesign-navbar aria-haspopup="true", aria-expanded="false", data-toggle="dropdown" - event-tracking="menu-expand" - event-tracking-mb="true" - event-tracking-trigger="click" - event-segmentation={"item": "admin", "location": "top-menu"} ) | Admin span.caret @@ -89,10 +85,6 @@ nav.navbar.navbar-default.navbar-main.website-redesign-navbar aria-haspopup="true", aria-expanded="false", data-toggle="dropdown" - event-tracking="menu-expand" - event-tracking-mb="true" - event-tracking-trigger="click" - event-segmentation={"item": item.trackingKey, "location": "top-menu"} ) | !{translate(item.text)} span.caret @@ -103,7 +95,7 @@ nav.navbar.navbar-default.navbar-main.website-redesign-navbar else if child.isContactUs li a(data-ol-open-contact-form-modal="contact-us" href) - span(event-tracking="menu-click" event-tracking-mb="true" event-tracking-trigger="click" event-segmentation={"item": "contact", "location": "top-menu"}) + span(event-tracking="menu-clicked-contact" event-tracking-mb="true" event-tracking-trigger="click") | #{translate("contact_us")} else li @@ -138,22 +130,22 @@ nav.navbar.navbar-default.navbar-main.website-redesign-navbar li.primary a( href="/register" - event-tracking="menu-click" + event-tracking="menu-clicked-register" event-tracking-action="clicked" event-tracking-trigger="click" event-tracking-mb="true" - event-segmentation={ page: currentUrl, item: 'register', location: 'top-menu' } + event-segmentation={ page: currentUrl } ) #{translate('sign_up')} // login link li.secondary a( href="/login" - event-tracking="menu-click" + event-tracking="menu-clicked-login" event-tracking-action="clicked" event-tracking-trigger="click" event-tracking-mb="true" - event-segmentation={ page: currentUrl, item: 'login', location: 'top-menu' } + event-segmentation={ page: currentUrl } ) #{translate('log_in')} // projects link and account menu @@ -167,10 +159,6 @@ nav.navbar.navbar-default.navbar-main.website-redesign-navbar aria-haspopup="true", aria-expanded="false", data-toggle="dropdown" - event-tracking="menu-expand" - event-tracking-mb="true" - event-tracking-trigger="click" - event-segmentation={"item": "account", "location": "top-menu"} ) | #{translate('Account')} span.caret diff --git a/services/web/frontend/js/features/event-tracking/index.js b/services/web/frontend/js/features/event-tracking/index.js index e016f59026..beae334153 100644 --- a/services/web/frontend/js/features/event-tracking/index.js +++ b/services/web/frontend/js/features/event-tracking/index.js @@ -12,14 +12,6 @@ function setupEventTracking(el) { const element = el.getAttribute('event-tracking-element') function submit() { - if (key === 'menu-expand') { - const expanded = el.getAttribute('aria-expanded') - if (expanded === 'true') { - // skip if the menu is already expanded - return - } - } - const segmentation = JSON.parse( el.getAttribute('event-segmentation') || '{}' ) diff --git a/services/web/frontend/js/features/project-list/components/new-project-button.tsx b/services/web/frontend/js/features/project-list/components/new-project-button.tsx index ea9e8bf549..5a0cf33f44 100644 --- a/services/web/frontend/js/features/project-list/components/new-project-button.tsx +++ b/services/web/frontend/js/features/project-list/components/new-project-button.tsx @@ -17,8 +17,6 @@ import { DropdownMenu, DropdownToggle, } from '@/features/ui/components/bootstrap-5/dropdown-menu' -import { useSendProjectListMB } from '@/features/project-list/components/project-list-events' -import type { PortalTemplate } from '../../../../../types/portal-template' type SendTrackingEvent = { dropdownMenu: string @@ -56,7 +54,7 @@ function NewProjectButton({ useState>(null) const portalTemplates = getMeta('ol-portalTemplates') || [] const { show: enableAddAffiliationWidget } = useAddAffiliation() - const sendProjectListMB = useSendProjectListMB() + const sendTrackingEvent = useCallback( ({ dropdownMenu, @@ -105,46 +103,37 @@ function NewProjectButton({ dropdownMenu: dropdownMenuEvent, dropdownOpen: true, }) - sendProjectListMB('new-project-click', { item: dropdownMenuEvent }) setModal(modalVariant) }, - [sendProjectListMB, sendTrackingEvent] + [sendTrackingEvent] ) const handlePortalTemplateClick = useCallback( - (e: React.MouseEvent, template: PortalTemplate) => { + (e: React.MouseEvent, institutionTemplateName: string) => { // avoid invoking the "onClick" callback on the main dropdown button e.stopPropagation() sendTrackingEvent({ dropdownMenu: 'institution-template', dropdownOpen: true, - institutionTemplateName: template.name, - }) - sendProjectListMB('new-project-click', { - item: template.name, - destinationURL: template.url, + institutionTemplateName, }) }, - [sendProjectListMB, sendTrackingEvent] + [sendTrackingEvent] ) const handleStaticTemplateClick = useCallback( - (e: React.MouseEvent, template: { trackingKey: string; url: string }) => { + (e: React.MouseEvent, templateTrackingKey: string) => { // avoid invoking the "onClick" callback on the main dropdown button e.stopPropagation() sendTrackingEvent({ - dropdownMenu: template.trackingKey, + dropdownMenu: templateTrackingKey, dropdownOpen: true, }) - sendProjectListMB('new-project-click', { - item: template.trackingKey, - destinationURL: template.url, - }) }, - [sendProjectListMB, sendTrackingEvent] + [sendTrackingEvent] ) const [importProjectFromGithubMenu] = importOverleafModules( @@ -160,9 +149,6 @@ function NewProjectButton({ { - if (nextShow) sendProjectListMB('new-project-expand', undefined) - }} > handlePortalTemplateClick(e, portalTemplate)} + onClick={e => + handlePortalTemplateClick(e, portalTemplate.name) + } aria-label={`${portalTemplate.name} ${t('template')}`} > {portalTemplate.name} @@ -253,7 +241,9 @@ function NewProjectButton({
  • handleStaticTemplateClick(e, templateLink)} + onClick={e => + handleStaticTemplateClick(e, templateLink.trackingKey) + } aria-label={`${templateLink.name} ${t('template')}`} > {templateLink.name === 'view_all' diff --git a/services/web/frontend/js/features/project-list/components/project-list-events.ts b/services/web/frontend/js/features/project-list/components/project-list-events.ts deleted file mode 100644 index eda62016ed..0000000000 --- a/services/web/frontend/js/features/project-list/components/project-list-events.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { useCallback } from 'react' -import { useSplitTestContext } from '@/shared/context/split-test-context' -import { sendMB } from '@/infrastructure/event-tracking' - -export type ExtraSegmentations = { - 'menu-expand': { - item: 'help' | 'account' | 'features' | 'admin' - location: 'top-menu' | 'sidebar' - } - 'menu-click': { - item: - | 'login' - | 'register' - | 'premium-features' - | 'enterprises' - | 'universities' - | 'publishers' - | 'edu' - | 'government' - | 'why-latex' - | 'learn' - | 'contact' - | 'templates' - | 'plans' - location: 'top-menu' | 'sidebar' - destinationURL?: string - } - 'new-project-expand': undefined - 'new-project-click': { - item: - | 'blank-project' - | 'example-project' - | 'upload' - | 'github-import' - | 'all-templates' - | (string & {}) - destinationURL?: string - } -} - -export const useSendProjectListMB = () => { - const { splitTestVariants } = useSplitTestContext() - const hasDsNav = splitTestVariants['sidebar-navigation-ui-update'] as - | 'default' - | 'active' - return useCallback( - ( - event: T, - payload: ExtraSegmentations[T] - ) => - sendMB(event, { ...payload, 'sidebar-navigation-ui-update': hasDsNav }), - [hasDsNav] - ) -} diff --git a/services/web/frontend/js/features/project-list/components/sidebar/sidebar-ds-nav.tsx b/services/web/frontend/js/features/project-list/components/sidebar/sidebar-ds-nav.tsx index 068f80c7a1..0a2942f944 100644 --- a/services/web/frontend/js/features/project-list/components/sidebar/sidebar-ds-nav.tsx +++ b/services/web/frontend/js/features/project-list/components/sidebar/sidebar-ds-nav.tsx @@ -16,7 +16,6 @@ import { useContactUsModal } from '@/shared/hooks/use-contact-us-modal' import { UserProvider } from '@/shared/context/user-context' import { AccountMenuItems } from '@/features/ui/components/bootstrap-5/navbar/account-menu-items' import { useScrolled } from '@/features/project-list/components/sidebar/use-scroll' -import { useSendProjectListMB } from '@/features/project-list/components/project-list-events' function SidebarDsNav() { const { t } = useTranslation() @@ -30,7 +29,6 @@ function SidebarDsNav() { const { mousePos, getHandleProps, getTargetProps } = usePersistedResize({ name: 'project-sidebar', }) - const sendMB = useSendProjectListMB() const { sessionUser, showSubscriptionLink, items } = getMeta('ol-navbar') const helpItem = items.find( item => item.text === 'help' @@ -67,12 +65,7 @@ function SidebarDsNav() { {helpItem && ( { - setShowHelpDropdown(show) - if (show) { - sendMB('menu-expand', { item: 'help', location: 'sidebar' }) - } - }} + onToggle={show => setShowHelpDropdown(show)} > @@ -108,15 +100,7 @@ function SidebarDsNav() { <> { - setShowAccountDropdown(show) - if (show) { - sendMB('menu-expand', { - item: 'account', - location: 'sidebar', - }) - } - }} + onToggle={show => setShowAccountDropdown(show)} > ) { - const sendProjectListMB = useSendProjectListMB() return ( - { - if (nextShow) { - sendProjectListMB('menu-expand', { - item: 'admin', - location: 'top-menu', - }) - } - }} - > + {canDisplayAdminMenu ? ( <> Manage Site diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/contact-us-item.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/contact-us-item.tsx index 657d472cb3..85ece25d7d 100644 --- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/contact-us-item.tsx +++ b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/contact-us-item.tsx @@ -1,7 +1,7 @@ +import { sendMB } from '@/infrastructure/event-tracking' import { useTranslation } from 'react-i18next' import { DropdownItem } from 'react-bootstrap-5' import DropdownListItem from '@/features/ui/components/bootstrap-5/dropdown-list-item' -import { useSendProjectListMB } from '@/features/project-list/components/project-list-events' export default function ContactUsItem({ showModal, @@ -9,7 +9,6 @@ export default function ContactUsItem({ showModal: (event?: Event) => void }) { const { t } = useTranslation() - const sendMB = useSendProjectListMB() return ( @@ -17,7 +16,7 @@ export default function ContactUsItem({ as="button" role="menuitem" onClick={() => { - sendMB('menu-click', { item: 'contact', location: 'top-menu' }) + sendMB('menu-clicked-contact') showModal() }} > diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/default-navbar.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/default-navbar.tsx index 80827f9b29..a65e803ea1 100644 --- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/default-navbar.tsx +++ b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/default-navbar.tsx @@ -27,6 +27,7 @@ function DefaultNavbar(props: DefaultNavbarMetadata) { showCloseIcon = false, showSubscriptionLink, showSignUpLink, + currentUrl, sessionUser, adminUrl, items, @@ -124,7 +125,10 @@ function DefaultNavbar(props: DefaultNavbarMetadata) { showSubscriptionLink={showSubscriptionLink} /> ) : ( - + )} diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/logged-in-items.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/logged-in-items.tsx index 5273eb8e98..3b123c0afb 100644 --- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/logged-in-items.tsx +++ b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/logged-in-items.tsx @@ -3,7 +3,6 @@ import NavDropdownMenu from '@/features/ui/components/bootstrap-5/navbar/nav-dro import type { NavbarSessionUser } from '@/features/ui/components/types/navbar' import NavLinkItem from '@/features/ui/components/bootstrap-5/navbar/nav-link-item' import { AccountMenuItems } from './account-menu-items' -import { useSendProjectListMB } from '@/features/project-list/components/project-list-events' export default function LoggedInItems({ sessionUser, @@ -13,24 +12,12 @@ export default function LoggedInItems({ showSubscriptionLink: boolean }) { const { t } = useTranslation() - const sendProjectListMB = useSendProjectListMB() return ( <> {t('projects')} - { - if (nextShow) { - sendProjectListMB('menu-expand', { - item: 'account', - location: 'top-menu', - }) - } - }} - > + @@ -16,8 +17,8 @@ export default function LoggedOutItems({ { - sendMB('menu-click', { item: 'register', location: 'top-menu' }) + onClick={e => { + sendMB('menu-clicked-register', { page: currentUrl }) }} > {t('sign_up')} @@ -26,8 +27,8 @@ export default function LoggedOutItems({ { - sendMB('menu-click', { item: 'login', location: 'top-menu' }) + onClick={e => { + sendMB('menu-clicked-login', { page: currentUrl }) }} > {t('log_in')} diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-from-data.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-from-data.tsx index e54b225f87..030220abb4 100644 --- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-from-data.tsx +++ b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-from-data.tsx @@ -3,15 +3,12 @@ import type { NavbarItemDropdownData, } from '@/features/ui/components/types/navbar' import NavDropdownDivider from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-divider' +import { sendMB } from '@/infrastructure/event-tracking' import { isDropdownLinkItem } from '@/features/ui/components/bootstrap-5/navbar/util' import NavDropdownLinkItem from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-link-item' import DropdownListItem from '@/features/ui/components/bootstrap-5/dropdown-list-item' import NavDropdownMenu from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-menu' import ContactUsItem from '@/features/ui/components/bootstrap-5/navbar/contact-us-item' -import { - type ExtraSegmentations, - useSendProjectListMB, -} from '@/features/project-list/components/project-list-events' export default function NavDropdownFromData({ item, @@ -20,24 +17,11 @@ export default function NavDropdownFromData({ item: NavbarDropdownItemData showContactUsModal: (event?: Event) => void }) { - const sendProjectListMB = useSendProjectListMB() return ( - { - if (nextShow) { - sendProjectListMB('menu-expand', { - item: item.trackingKey, - location: 'top-menu', - }) - } - }} - > + ) @@ -46,13 +30,10 @@ export default function NavDropdownFromData({ export function NavDropdownMenuItems({ dropdown, showContactUsModal, - location, }: { dropdown: NavbarItemDropdownData showContactUsModal: (event?: Event) => void - location: ExtraSegmentations['menu-expand']['location'] }) { - const sendProjectListMB = useSendProjectListMB() return ( <> {dropdown.map((child, index) => { @@ -66,11 +47,7 @@ export function NavDropdownMenuItems({ key={index} href={child.url} onClick={() => { - sendProjectListMB('menu-click', { - item: child.trackingKey as ExtraSegmentations['menu-click']['item'], - location, - destinationURL: child.url, - }) + sendMB(child.event) }} > {child.translatedText} diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-menu.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-menu.tsx index 65eae92d9b..d98613aa9d 100644 --- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-menu.tsx +++ b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-menu.tsx @@ -5,17 +5,15 @@ export default function NavDropdownMenu({ title, className, children, - onToggle, }: { title: string className?: string children: ReactNode - onToggle?: (nextShow: boolean) => void }) { // Can't use a NavDropdown here because it's impossible to render the menu as // a
      element using NavDropdown return ( - + {title} {children} diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-item-from-data.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-item-from-data.tsx index a4dca0dcb8..2627ef2deb 100644 --- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-item-from-data.tsx +++ b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-item-from-data.tsx @@ -5,8 +5,8 @@ import { } from '@/features/ui/components/bootstrap-5/navbar/util' import NavDropdownFromData from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-from-data' import NavItem from '@/features/ui/components/bootstrap-5/navbar/nav-item' +import { sendMB } from '@/infrastructure/event-tracking' import NavLinkItem from '@/features/ui/components/bootstrap-5/navbar/nav-link-item' -import { useSendProjectListMB } from '@/features/project-list/components/project-list-events' export default function NavItemFromData({ item, @@ -15,7 +15,6 @@ export default function NavItemFromData({ item: NavbarItemData showContactUsModal: (event?: Event) => void }) { - const sendProjectListMB = useSendProjectListMB() if (isDropdownItem(item)) { return ( { - sendProjectListMB('menu-click', { - item: item.trackingKey as any, - location: 'top-menu', - destinationURL: item.url, - }) + sendMB(item.event) }} > {item.translatedText} diff --git a/services/web/frontend/js/features/ui/components/types/navbar.ts b/services/web/frontend/js/features/ui/components/types/navbar.ts index ff4e1829cf..2ab49e18a9 100644 --- a/services/web/frontend/js/features/ui/components/types/navbar.ts +++ b/services/web/frontend/js/features/ui/components/types/navbar.ts @@ -14,7 +14,7 @@ export interface NavbarDropdownTextItem { export interface NavbarDropdownLinkItem extends NavbarDropdownTextItem { url: string - trackingKey: string + event: string eventSegmentation?: Record } @@ -37,12 +37,11 @@ export interface NavbarTextItemData { export interface NavbarDropdownItemData extends NavbarTextItemData { dropdown: NavbarItemDropdownData - trackingKey: 'help' | 'account' | 'features' | 'admin' } export interface NavbarLinkItemData extends NavbarTextItemData { url: string - trackingKey: string + event: string } export type NavbarItemData =