diff --git a/web/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx b/web/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx index 5f049d4c3..2e40d4792 100644 --- a/web/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx @@ -3,7 +3,7 @@ import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; import useSWR from "swr"; // mobx store -import { useIssues } from "hooks/store"; +import { useEventTracker, useIssues } from "hooks/store"; // components import { ArchivedIssueListLayout, @@ -21,12 +21,14 @@ export const ArchivedIssueLayoutRoot: React.FC = observer(() => { const { workspaceSlug, projectId } = router.query; // hooks const { issues, issuesFilter } = useIssues(EIssuesStoreType.ARCHIVED); + const { captureIssuesListOpenedEvent } = useEventTracker(); useSWR( workspaceSlug && projectId ? `ARCHIVED_ISSUES_${workspaceSlug.toString()}_${projectId.toString()}` : null, async () => { if (workspaceSlug && projectId) { await issuesFilter?.fetchFilters(workspaceSlug.toString(), projectId.toString()); + captureIssuesListOpenedEvent(router.asPath, issuesFilter?.issueFilters?.filters); await issues?.fetchIssues( workspaceSlug.toString(), projectId.toString(), diff --git a/web/components/issues/issue-layouts/roots/cycle-layout-root.tsx b/web/components/issues/issue-layouts/roots/cycle-layout-root.tsx index 4f7088c38..2b72d121f 100644 --- a/web/components/issues/issue-layouts/roots/cycle-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/cycle-layout-root.tsx @@ -4,7 +4,7 @@ import { observer } from "mobx-react-lite"; import useSWR from "swr"; import size from "lodash/size"; // hooks -import { useCycle, useIssues } from "hooks/store"; +import { useCycle, useEventTracker, useIssues } from "hooks/store"; // components import { CycleAppliedFiltersRoot, @@ -29,6 +29,7 @@ export const CycleLayoutRoot: React.FC = observer(() => { // store hooks const { issues, issuesFilter } = useIssues(EIssuesStoreType.CYCLE); const { getCycleById } = useCycle(); + const { captureIssuesListOpenedEvent } = useEventTracker(); // state const [transferIssuesModal, setTransferIssuesModal] = useState(false); @@ -39,6 +40,7 @@ export const CycleLayoutRoot: React.FC = observer(() => { async () => { if (workspaceSlug && projectId && cycleId) { await issuesFilter?.fetchFilters(workspaceSlug.toString(), projectId.toString(), cycleId.toString()); + captureIssuesListOpenedEvent(router.asPath, issuesFilter?.issueFilters?.filters); await issues?.fetchIssues( workspaceSlug.toString(), projectId.toString(), diff --git a/web/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx b/web/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx index ede0dde30..aed208cf0 100644 --- a/web/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx @@ -3,7 +3,7 @@ import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; import useSWR from "swr"; // hooks -import { useIssues } from "hooks/store"; +import { useEventTracker, useIssues } from "hooks/store"; // components import { DraftIssueAppliedFiltersRoot } from "../filters/applied-filters/roots/draft-issue"; import { DraftIssueListLayout } from "../list/roots/draft-issue-root"; @@ -21,12 +21,14 @@ export const DraftIssueLayoutRoot: React.FC = observer(() => { const { workspaceSlug, projectId } = router.query; // hooks const { issues, issuesFilter } = useIssues(EIssuesStoreType.DRAFT); + const { captureIssuesListOpenedEvent } = useEventTracker(); useSWR( workspaceSlug && projectId ? `DRAFT_ISSUES_${workspaceSlug.toString()}_${projectId.toString()}` : null, async () => { if (workspaceSlug && projectId) { await issuesFilter?.fetchFilters(workspaceSlug.toString(), projectId.toString()); + captureIssuesListOpenedEvent(router.asPath, issuesFilter?.issueFilters?.filters); await issues?.fetchIssues( workspaceSlug.toString(), projectId.toString(), diff --git a/web/components/issues/issue-layouts/roots/module-layout-root.tsx b/web/components/issues/issue-layouts/roots/module-layout-root.tsx index b7978c7bc..4ca0bf35b 100644 --- a/web/components/issues/issue-layouts/roots/module-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/module-layout-root.tsx @@ -4,7 +4,7 @@ import { observer } from "mobx-react-lite"; import useSWR from "swr"; import size from "lodash/size"; // mobx store -import { useIssues } from "hooks/store"; +import { useEventTracker, useIssues } from "hooks/store"; // components import { IssuePeekOverview, @@ -28,6 +28,7 @@ export const ModuleLayoutRoot: React.FC = observer(() => { const { workspaceSlug, projectId, moduleId } = router.query; // hooks const { issues, issuesFilter } = useIssues(EIssuesStoreType.MODULE); + const { captureIssuesListOpenedEvent } = useEventTracker(); useSWR( workspaceSlug && projectId && moduleId @@ -36,6 +37,7 @@ export const ModuleLayoutRoot: React.FC = observer(() => { async () => { if (workspaceSlug && projectId && moduleId) { await issuesFilter?.fetchFilters(workspaceSlug.toString(), projectId.toString(), moduleId.toString()); + captureIssuesListOpenedEvent(router.asPath, issuesFilter?.issueFilters?.filters); await issues?.fetchIssues( workspaceSlug.toString(), projectId.toString(), diff --git a/web/components/issues/issue-layouts/roots/project-layout-root.tsx b/web/components/issues/issue-layouts/roots/project-layout-root.tsx index 75bb4bfad..c0fdb343c 100644 --- a/web/components/issues/issue-layouts/roots/project-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/project-layout-root.tsx @@ -16,7 +16,7 @@ import { // ui import { Spinner } from "@plane/ui"; // hooks -import { useIssues } from "hooks/store"; +import { useEventTracker, useIssues } from "hooks/store"; // helpers import { ActiveLoader } from "components/ui"; // constants @@ -28,10 +28,12 @@ export const ProjectLayoutRoot: FC = observer(() => { const { workspaceSlug, projectId } = router.query; // hooks const { issues, issuesFilter } = useIssues(EIssuesStoreType.PROJECT); + const { captureIssuesListOpenedEvent } = useEventTracker(); useSWR(workspaceSlug && projectId ? `PROJECT_ISSUES_${workspaceSlug}_${projectId}` : null, async () => { if (workspaceSlug && projectId) { await issuesFilter?.fetchFilters(workspaceSlug.toString(), projectId.toString()); + captureIssuesListOpenedEvent(router.asPath, issuesFilter?.issueFilters?.filters); await issues?.fetchIssues( workspaceSlug.toString(), projectId.toString(), diff --git a/web/components/issues/issue-layouts/roots/project-view-layout-root.tsx b/web/components/issues/issue-layouts/roots/project-view-layout-root.tsx index 2329e52df..20fa43fc1 100644 --- a/web/components/issues/issue-layouts/roots/project-view-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/project-view-layout-root.tsx @@ -3,7 +3,7 @@ import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; import useSWR from "swr"; // mobx store -import { useIssues } from "hooks/store"; +import { useEventTracker, useIssues } from "hooks/store"; // components import { IssuePeekOverview, @@ -28,12 +28,14 @@ export const ProjectViewLayoutRoot: React.FC = observer(() => { const { workspaceSlug, projectId, viewId } = router.query; // hooks const { issues, issuesFilter } = useIssues(EIssuesStoreType.PROJECT_VIEW); + const { captureIssuesListOpenedEvent } = useEventTracker(); useSWR( workspaceSlug && projectId && viewId ? `PROJECT_VIEW_ISSUES_${workspaceSlug}_${projectId}_${viewId}` : null, async () => { if (workspaceSlug && projectId && viewId) { await issuesFilter?.fetchFilters(workspaceSlug.toString(), projectId.toString(), viewId.toString()); + captureIssuesListOpenedEvent(router.asPath, issuesFilter?.issueFilters?.filters); await issues?.fetchIssues( workspaceSlug.toString(), projectId.toString(), diff --git a/web/components/project/sidebar-list-item.tsx b/web/components/project/sidebar-list-item.tsx index b8e4b9eda..96bcd9994 100644 --- a/web/components/project/sidebar-list-item.tsx +++ b/web/components/project/sidebar-list-item.tsx @@ -145,6 +145,7 @@ export const ProjectSidebarListItem: React.FC = observer((props) => { if (window.innerWidth < 768) { themeStore.toggleMobileSidebar(); } + setTrackElement('Project sidebar'); }; useOutsideClickDetector(actionSectionRef, () => setIsMenuActive(false)); diff --git a/web/components/project/sidebar-list.tsx b/web/components/project/sidebar-list.tsx index d5ceb4736..55bb1a049 100644 --- a/web/components/project/sidebar-list.tsx +++ b/web/components/project/sidebar-list.tsx @@ -139,7 +139,7 @@ export const ProjectSidebarList: FC = observer(() => {