docs: add tracking for navigation usage (#8819)

This commit is contained in:
Shahed Nasser
2024-08-28 15:44:54 +03:00
committed by GitHub
parent e1fd448cd1
commit 22d92aa70a
2 changed files with 20 additions and 3 deletions
@@ -4,12 +4,13 @@ import clsx from "clsx"
import React, { useMemo, useRef, useState } from "react" import React, { useMemo, useRef, useState } from "react"
import { MainNavigationDropdownSelected } from "./Selected" import { MainNavigationDropdownSelected } from "./Selected"
import { MainNavigationDropdownMenu } from "./Menu" import { MainNavigationDropdownMenu } from "./Menu"
import { useClickOutside, useMainNav } from "../../.." import { useAnalytics, useClickOutside, useMainNav } from "../../.."
export const MainNavigationDropdown = () => { export const MainNavigationDropdown = () => {
const { navItems: items } = useMainNav() const { navItems: items } = useMainNav()
const navigationRef = useRef<HTMLDivElement>(null) const navigationRef = useRef<HTMLDivElement>(null)
const [menuOpen, setMenuOpen] = useState(false) const [menuOpen, setMenuOpen] = useState(false)
const { track } = useAnalytics()
useClickOutside({ useClickOutside({
elmRef: navigationRef, elmRef: navigationRef,
onClickOutside: () => { onClickOutside: () => {
@@ -33,7 +34,14 @@ export const MainNavigationDropdown = () => {
{selectedItem && ( {selectedItem && (
<MainNavigationDropdownSelected <MainNavigationDropdownSelected
item={selectedItem} item={selectedItem}
onClick={() => setMenuOpen((prev) => !prev)} onClick={() => {
setMenuOpen((prev) => !prev)
if (!menuOpen) {
track("nav_main_open", {
url: window.location.href,
})
}
}}
isActive={menuOpen} isActive={menuOpen}
/> />
)} )}
@@ -5,6 +5,7 @@ import React, { useRef, useState } from "react"
import { import {
BorderedIcon, BorderedIcon,
getOsShortcut, getOsShortcut,
useAnalytics,
useClickOutside, useClickOutside,
useSidebar, useSidebar,
} from "../../../.." } from "../../../.."
@@ -20,9 +21,17 @@ import { Menu } from "../../../Menu"
export const SidebarTopMedusaMenu = () => { export const SidebarTopMedusaMenu = () => {
const [openMenu, setOpenMenu] = useState(false) const [openMenu, setOpenMenu] = useState(false)
const { setDesktopSidebarOpen } = useSidebar() const { setDesktopSidebarOpen } = useSidebar()
const { track } = useAnalytics()
const ref = useRef<HTMLDivElement>(null) const ref = useRef<HTMLDivElement>(null)
const toggleOpen = () => setOpenMenu((prev) => !prev) const toggleOpen = () => {
setOpenMenu((prev) => !prev)
if (!openMenu) {
track("nav_sidebar_open", {
url: window.location.href,
})
}
}
useClickOutside({ useClickOutside({
elmRef: ref, elmRef: ref,