From 20553ef09eeaa076adc479d7b9e2b065da16ad63 Mon Sep 17 00:00:00 2001 From: vamsikrishnamathala Date: Tue, 1 Jul 2025 18:41:33 +0530 Subject: [PATCH] chore: removed instances of event tracker --- packages/constants/src/event-tracker/core.ts | 14 ++++++++++++-- .../account/auth-forms/unique-code.tsx | 2 -- .../(projects)/analytics/[tabId]/page.tsx | 4 +--- .../(detail)/[projectId]/pages/(list)/header.tsx | 14 +++++++++----- .../quick-action-dropdowns/copy-menu-helper.tsx | 1 - web/ce/helpers/command-palette.ts | 2 +- .../components/command-palette/command-modal.tsx | 15 +++++---------- .../command-palette/command-palette.tsx | 16 ++++------------ .../home/widgets/empty-states/no-projects.tsx | 11 +---------- .../components/integration/jira/give-details.tsx | 6 +++--- .../sub-issues/quick-action-button.tsx | 9 +++++---- .../kanban/headers/group-by-card.tsx | 11 +++++------ .../issue-layouts/list/headers/group-by-card.tsx | 13 +++++-------- .../quick-action-dropdowns/all-issue.tsx | 5 +---- .../quick-action-dropdowns/archived-issue.tsx | 4 +--- .../quick-action-dropdowns/cycle-issue.tsx | 5 +---- .../quick-action-dropdowns/draft-issue.tsx | 4 +--- .../quick-action-dropdowns/helper.tsx | 8 -------- .../quick-action-dropdowns/module-issue.tsx | 4 +--- .../quick-action-dropdowns/project-issue.tsx | 4 +--- .../project/settings/features-list.tsx | 11 +++-------- 21 files changed, 60 insertions(+), 103 deletions(-) diff --git a/packages/constants/src/event-tracker/core.ts b/packages/constants/src/event-tracker/core.ts index 276e4da36cf..c7ccc5bbe59 100644 --- a/packages/constants/src/event-tracker/core.ts +++ b/packages/constants/src/event-tracker/core.ts @@ -96,6 +96,11 @@ export const HEADER_GITHUB_ICON = "header_github_icon"; // Groups export const GROUP_WORKSPACE_TRACKER_EVENT = "workspace_metrics"; +// Command palette tracker +export const COMMAND_PALETTE_TRACKER_ELEMENTS = { + COMMAND_PALETTE_SHORTCUT_KEY: "command_palette_shortcut_key", +}; + export const WORKSPACE_TRACKER_EVENTS = { create: "workspace_created", update: "workspace_updated", @@ -125,6 +130,8 @@ export const PROJECT_TRACKER_ELEMENTS = { CREATE_FIRST_PROJECT_BUTTON: "create_first_project_button", DELETE_PROJECT_BUTTON: "delete_project_button", UPDATE_PROJECT_BUTTON: "update_project_button", + CREATE_PROJECT_JIRA_IMPORT_DETAIL_PAGE: "create_project_jira_import_detail_page", + TOGGLE_FEATURE: "toggle_project_feature", }; export const CYCLE_TRACKER_EVENTS = { @@ -173,6 +180,7 @@ export const MODULE_TRACKER_ELEMENTS = { export const WORK_ITEM_TRACKER_EVENTS = { create: "work_item_created", + add_existing: "work_item_add_existing", update: "work_item_updated", delete: "work_item_deleted", archive: "work_item_archived", @@ -185,10 +193,12 @@ export const WORK_ITEM_TRACKER_EVENTS = { update: "sub_issue_updated", remove: "sub_issue_removed", delete: "sub_issue_deleted", + create: "sub_issue_created", + add_existing: "sub_issue_add_existing", }, draft: { create: "draft_work_item_created", - } + }, }; export const WORK_ITEM_TRACKER_ELEMENTS = { @@ -198,7 +208,7 @@ export const WORK_ITEM_TRACKER_ELEMENTS = { CYCLE: "cycle_header_add_work_item_button", MODULE: "module_header_add_work_item_button", }, - COMMAND_PALETTE_ADD_ITEM: "command_palette_add_work_item_item", + COMMAND_PALETTE_ADD_BUTTON: "command_palette_add_work_item_button", EMPTY_STATE_ADD_BUTTON: { WORK_ITEMS: "work_items_empty_state_add_work_item_button", PROJECT_VIEW: "project_view_empty_state_add_work_item_button", diff --git a/space/core/components/account/auth-forms/unique-code.tsx b/space/core/components/account/auth-forms/unique-code.tsx index 750b52ccda1..abf233a297d 100644 --- a/space/core/components/account/auth-forms/unique-code.tsx +++ b/space/core/components/account/auth-forms/unique-code.tsx @@ -34,8 +34,6 @@ const defaultValues: TUniqueCodeFormValues = { export const AuthUniqueCodeForm: React.FC = (props) => { const { mode, email, nextPath, handleEmailClear, generateEmailUniqueCode } = props; - // hooks - // const { captureEvent } = useEventTracker(); // derived values const defaultResetTimerValue = 5; // states diff --git a/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx b/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx index b72ef0fd5c8..829ebdec7f6 100644 --- a/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx +++ b/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx @@ -13,7 +13,7 @@ import { PageHead } from "@/components/core"; import { ComicBoxButton, DetailedEmptyState } from "@/components/empty-state"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useCommandPalette, useEventTracker, useProject, useUserPermissions, useWorkspace } from "@/hooks/store"; +import { useCommandPalette, useProject, useUserPermissions, useWorkspace } from "@/hooks/store"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; import { getAnalyticsTabs } from "@/plane-web/components/analytics/tabs"; @@ -37,7 +37,6 @@ const AnalyticsPage = observer((props: Props) => { // store hooks const { toggleCreateProjectModal } = useCommandPalette(); - const { setTrackElement } = useEventTracker(); const { workspaceProjectIds, loader } = useProject(); const { currentWorkspace } = useWorkspace(); const { allowPermissions } = useUserPermissions(); @@ -102,7 +101,6 @@ const AnalyticsPage = observer((props: Props) => { title={t("workspace_analytics.empty_state.general.primary_button.comic.title")} description={t("workspace_analytics.empty_state.general.primary_button.comic.description")} onClick={() => { - setTrackElement("Analytics empty state"); toggleCreateProjectModal(true); captureClick({ elementName: PROJECT_TRACKER_ELEMENTS.EMPTY_STATE_CREATE_PROJECT_BUTTON }); }} diff --git a/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/header.tsx b/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/header.tsx index af1a75f38dd..85797c5a763 100644 --- a/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/header.tsx +++ b/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/header.tsx @@ -4,13 +4,13 @@ import { useState } from "react"; import { observer } from "mobx-react"; import { useParams, useRouter, useSearchParams } from "next/navigation"; // constants -import { EPageAccess, EProjectFeatureKey } from "@plane/constants"; +import { EPageAccess, EProjectFeatureKey, PROJECT_TRACKER_ELEMENTS } from "@plane/constants"; // plane types import { TPage } from "@plane/types"; // plane ui import { Breadcrumbs, Button, Header, setToast, TOAST_TYPE } from "@plane/ui"; // hooks -import { useEventTracker, useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store"; // plane web import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs"; // plane web hooks @@ -27,11 +27,9 @@ export const PagesListHeader = observer(() => { // store hooks const { currentProjectDetails, loader } = useProject(); const { canCurrentUserCreatePage, createPage } = usePageStore(EPageStoreType.PROJECT); - const { setTrackElement } = useEventTracker(); // handle page create const handleCreatePage = async () => { setIsCreatingPage(true); - setTrackElement("Project pages page"); const payload: Partial = { access: pageType === "private" ? EPageAccess.PRIVATE : EPageAccess.PUBLIC, @@ -66,7 +64,13 @@ export const PagesListHeader = observer(() => { {canCurrentUserCreatePage ? ( - diff --git a/web/ce/components/issues/issue-layouts/quick-action-dropdowns/copy-menu-helper.tsx b/web/ce/components/issues/issue-layouts/quick-action-dropdowns/copy-menu-helper.tsx index f9aed404035..202d682e954 100644 --- a/web/ce/components/issues/issue-layouts/quick-action-dropdowns/copy-menu-helper.tsx +++ b/web/ce/components/issues/issue-layouts/quick-action-dropdowns/copy-menu-helper.tsx @@ -10,7 +10,6 @@ export interface CopyMenuHelperProps { shouldRender: boolean; }; activeLayout: string; - setTrackElement: (element: string) => void; setCreateUpdateIssueModal: (open: boolean) => void; setDuplicateWorkItemModal?: (open: boolean) => void; } diff --git a/web/ce/helpers/command-palette.ts b/web/ce/helpers/command-palette.ts index 3181c88e2eb..1cb04b623dd 100644 --- a/web/ce/helpers/command-palette.ts +++ b/web/ce/helpers/command-palette.ts @@ -20,7 +20,7 @@ export const getGlobalShortcutsList: () => TCommandPaletteActionList = () => { description: "Create a new work item in the current project", action: () => { toggleCreateIssueModal(true); - captureClick({ elementName: WORK_ITEM_TRACKER_ELEMENTS.COMMAND_PALETTE_ADD_ITEM }); + captureClick({ elementName: WORK_ITEM_TRACKER_ELEMENTS.COMMAND_PALETTE_ADD_BUTTON }); }, }, }; diff --git a/web/core/components/command-palette/command-modal.tsx b/web/core/components/command-palette/command-modal.tsx index e1c3840ca85..27493c8460f 100644 --- a/web/core/components/command-palette/command-modal.tsx +++ b/web/core/components/command-palette/command-modal.tsx @@ -12,6 +12,7 @@ import { EUserPermissions, EUserPermissionsLevel, PROJECT_TRACKER_ELEMENTS, + WORK_ITEM_TRACKER_ELEMENTS, WORKSPACE_DEFAULT_SEARCH_RESULT, } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; @@ -34,14 +35,7 @@ import { SimpleEmptyState } from "@/components/empty-state"; // helpers // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { - useCommandPalette, - useEventTracker, - useIssueDetail, - useProject, - useUser, - useUserPermissions, -} from "@/hooks/store"; +import { useCommandPalette, useIssueDetail, useProject, useUser, useUserPermissions } from "@/hooks/store"; import { useAppRouter } from "@/hooks/use-app-router"; import useDebounce from "@/hooks/use-debounce"; import { usePlatformOS } from "@/hooks/use-platform-os"; @@ -80,7 +74,6 @@ export const CommandModal: React.FC = observer(() => { const { isCommandPaletteOpen, toggleCommandPaletteModal, toggleCreateIssueModal, toggleCreateProjectModal } = useCommandPalette(); const { allowPermissions } = useUserPermissions(); - const { setTrackElement } = useEventTracker(); const projectIdentifier = workItem?.toString().split("-")[0]; const sequence_id = workItem?.toString().split("-")[1]; // fetch work item details using identifier @@ -352,7 +345,9 @@ export const CommandModal: React.FC = observer(() => { { closePalette(); - setTrackElement("Command Palette"); + captureClick({ + elementName: WORK_ITEM_TRACKER_ELEMENTS.COMMAND_PALETTE_ADD_BUTTON, + }); toggleCreateIssueModal(true); }} className="focus:bg-custom-background-80" diff --git a/web/core/components/command-palette/command-palette.tsx b/web/core/components/command-palette/command-palette.tsx index e7557c2fd1f..0bc174d6d11 100644 --- a/web/core/components/command-palette/command-palette.tsx +++ b/web/core/components/command-palette/command-palette.tsx @@ -5,21 +5,15 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import useSWR from "swr"; // ui -import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; +import { COMMAND_PALETTE_TRACKER_ELEMENTS, EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { TOAST_TYPE, setToast } from "@plane/ui"; // components import { copyTextToClipboard } from "@plane/utils"; import { CommandModal, ShortcutsModal } from "@/components/command-palette"; // helpers // hooks -import { - useEventTracker, - useUser, - useAppTheme, - useCommandPalette, - useUserPermissions, - useIssueDetail, -} from "@/hooks/store"; +import { captureClick } from "@/helpers/event-tracker.helper"; +import { useUser, useAppTheme, useCommandPalette, useUserPermissions, useIssueDetail } from "@/hooks/store"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web components import { @@ -42,7 +36,6 @@ export const CommandPalette: FC = observer(() => { // store hooks const { fetchIssueWithIdentifier } = useIssueDetail(); const { toggleSidebar } = useAppTheme(); - const { setTrackElement } = useEventTracker(); const { platform } = usePlatformOS(); const { data: currentUser, canPerformAnyCreateAction } = useUser(); const { toggleCommandPaletteModal, isShortcutModalOpen, toggleShortcutModal, isAnyModalOpen } = useCommandPalette(); @@ -203,7 +196,7 @@ export const CommandPalette: FC = observer(() => { toggleSidebar(); } } else if (!isAnyModalOpen) { - setTrackElement("Shortcut key"); + captureClick({ elementName: COMMAND_PALETTE_TRACKER_ELEMENTS.COMMAND_PALETTE_SHORTCUT_KEY }); if ( Object.keys(shortcutsList.global).includes(keyPressed) && ((!projectId && performAnyProjectCreateActions()) || performProjectCreateActions()) @@ -242,7 +235,6 @@ export const CommandPalette: FC = observer(() => { performProjectCreateActions, performWorkspaceCreateActions, projectId, - setTrackElement, shortcutsList, toggleCommandPaletteModal, toggleShortcutModal, diff --git a/web/core/components/home/widgets/empty-states/no-projects.tsx b/web/core/components/home/widgets/empty-states/no-projects.tsx index 0e96d40482a..8621029eaa4 100644 --- a/web/core/components/home/widgets/empty-states/no-projects.tsx +++ b/web/core/components/home/widgets/empty-states/no-projects.tsx @@ -12,14 +12,7 @@ import { cn, getFileURL } from "@plane/utils"; // helpers // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { - useCommandPalette, - useEventTracker, - useProject, - useUser, - useUserPermissions, - useWorkspace, -} from "@/hooks/store"; +import { useCommandPalette, useProject, useUser, useUserPermissions, useWorkspace } from "@/hooks/store"; // plane web constants export const NoProjectsEmptyState = observer(() => { @@ -28,7 +21,6 @@ export const NoProjectsEmptyState = observer(() => { // store hooks const { allowPermissions } = useUserPermissions(); const { toggleCreateProjectModal } = useCommandPalette(); - const { setTrackElement } = useEventTracker(); const { data: currentUser } = useUser(); const { joinedProjectIds } = useProject(); const { currentWorkspace: activeWorkspace } = useWorkspace(); @@ -60,7 +52,6 @@ export const NoProjectsEmptyState = observer(() => { if (!canCreateProject) return; e.preventDefault(); e.stopPropagation(); - setTrackElement("Sidebar"); toggleCreateProjectModal(true); captureClick({ elementName: PROJECT_TRACKER_ELEMENTS.EMPTY_STATE_CREATE_PROJECT_BUTTON }); }, diff --git a/web/core/components/integration/jira/give-details.tsx b/web/core/components/integration/jira/give-details.tsx index 587471b0699..19eace8a5ba 100644 --- a/web/core/components/integration/jira/give-details.tsx +++ b/web/core/components/integration/jira/give-details.tsx @@ -12,13 +12,13 @@ import { IJiraImporterForm } from "@plane/types"; import { CustomSelect, Input } from "@plane/ui"; // helpers import { checkEmailValidity } from "@plane/utils"; -import { useCommandPalette, useEventTracker, useProject } from "@/hooks/store"; +import { captureClick } from "@/helpers/event-tracker.helper"; +import { useCommandPalette, useProject } from "@/hooks/store"; // types export const JiraGetImportDetail: React.FC = observer(() => { // store hooks const { toggleCreateProjectModal } = useCommandPalette(); - const { setTrackElement } = useEventTracker(); const { workspaceProjectIds, getProjectById } = useProject(); // form info const { @@ -204,7 +204,7 @@ export const JiraGetImportDetail: React.FC = observer(() => { type="button" data-ph-element={PROJECT_TRACKER_ELEMENTS.EMPTY_STATE_CREATE_PROJECT_BUTTON} onClick={() => { - setTrackElement("Jira import detail page"); + captureClick({ elementName: PROJECT_TRACKER_ELEMENTS.CREATE_PROJECT_JIRA_IMPORT_DETAIL_PAGE }); toggleCreateProjectModal(true); }} className="flex cursor-pointer select-none items-center space-x-2 truncate rounded px-1 py-1.5 text-custom-text-200" diff --git a/web/core/components/issues/issue-detail-widgets/sub-issues/quick-action-button.tsx b/web/core/components/issues/issue-detail-widgets/sub-issues/quick-action-button.tsx index 7f1b9c6c718..ae1bc87427f 100644 --- a/web/core/components/issues/issue-detail-widgets/sub-issues/quick-action-button.tsx +++ b/web/core/components/issues/issue-detail-widgets/sub-issues/quick-action-button.tsx @@ -3,11 +3,13 @@ import React, { FC } from "react"; import { observer } from "mobx-react"; import { LayersIcon, Plus } from "lucide-react"; // plane imports +import { WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { TIssue, TIssueServiceType } from "@plane/types"; import { CustomMenu } from "@plane/ui"; // hooks -import { useEventTracker, useIssueDetail } from "@/hooks/store"; +import { captureClick } from "@/helpers/event-tracker.helper"; +import { useIssueDetail } from "@/hooks/store"; type Props = { issueId: string; @@ -28,7 +30,6 @@ export const SubIssuesActionButton: FC = observer((props) => { setIssueCrudOperationState, issueCrudOperationState, } = useIssueDetail(issueServiceType); - const { setTrackElement } = useEventTracker(); // derived values const issue = getIssueById(issueId); @@ -52,13 +53,13 @@ export const SubIssuesActionButton: FC = observer((props) => { }; const handleCreateNew = () => { - setTrackElement("Issue detail nested sub-issue"); + captureClick({ elementName: WORK_ITEM_TRACKER_EVENTS.sub_issue.create }); handleIssueCrudState("create", issueId, null); toggleCreateIssueModal(true); }; const handleAddExisting = () => { - setTrackElement("Issue detail nested sub-issue"); + captureClick({ elementName: WORK_ITEM_TRACKER_EVENTS.sub_issue.add_existing }); handleIssueCrudState("existing", issueId, null); toggleSubIssuesModal(issue.id); }; diff --git a/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx b/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx index 6166b158a26..d40fbf0d593 100644 --- a/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx +++ b/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx @@ -5,6 +5,7 @@ import { observer } from "mobx-react"; import { useParams, usePathname } from "next/navigation"; // lucide icons import { Minimize2, Maximize2, Circle, Plus } from "lucide-react"; +import { WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; import { TIssue, ISearchIssueResponse, TIssueKanbanFilters, TIssueGroupByOptions } from "@plane/types"; // ui import { CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; @@ -12,8 +13,7 @@ import { CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; import { ExistingIssuesListModal } from "@/components/core"; import { CreateUpdateIssueModal } from "@/components/issues"; // constants -// hooks -import { useEventTracker } from "@/hooks/store"; +import { captureClick } from "@/helpers/event-tracker.helper"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import { CreateUpdateEpicModal } from "@/plane-web/components/epics/epic-modal"; // types @@ -56,7 +56,6 @@ export const HeaderGroupByCard: FC = observer((props) => { const [openExistingIssueListModal, setOpenExistingIssueListModal] = React.useState(false); // hooks const storeType = useIssueStoreType(); - const { setTrackElement } = useEventTracker(); // router const { workspaceSlug, projectId, moduleId, cycleId } = useParams(); const pathname = usePathname(); @@ -167,7 +166,7 @@ export const HeaderGroupByCard: FC = observer((props) => { > { - setTrackElement("Kanban layout"); + captureClick({ elementName: WORK_ITEM_TRACKER_EVENTS.create }); setIsOpen(true); }} > @@ -175,7 +174,7 @@ export const HeaderGroupByCard: FC = observer((props) => { { - setTrackElement("Kanban layout"); + captureClick({ elementName: WORK_ITEM_TRACKER_EVENTS.add_existing }); setOpenExistingIssueListModal(true); }} > @@ -186,7 +185,7 @@ export const HeaderGroupByCard: FC = observer((props) => {
{ - setTrackElement("Kanban layout"); + captureClick({ elementName: WORK_ITEM_TRACKER_EVENTS.create }); setIsOpen(true); }} > diff --git a/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx b/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx index 44bc95bff46..f107c28b65b 100644 --- a/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx +++ b/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx @@ -5,6 +5,7 @@ import { observer } from "mobx-react"; import { useParams, usePathname } from "next/navigation"; import { CircleDashed, Plus } from "lucide-react"; // types +import { WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; import { TIssue, ISearchIssueResponse, TIssueGroupByOptions } from "@plane/types"; // ui import { CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; @@ -13,9 +14,7 @@ import { cn } from "@plane/utils"; import { ExistingIssuesListModal, MultipleSelectGroupAction } from "@/components/core"; import { CreateUpdateIssueModal } from "@/components/issues"; // constants -// helpers -// hooks -import { useEventTracker } from "@/hooks/store"; +import { captureClick } from "@/helpers/event-tracker.helper"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; // plane-web @@ -59,8 +58,6 @@ export const HeaderGroupByCard = observer((props: IHeaderGroupByCard) => { // router const { workspaceSlug, projectId, moduleId, cycleId } = useParams(); const pathname = usePathname(); - // hooks - const { setTrackElement } = useEventTracker(); const storeType = useIssueStoreType(); // derived values const isDraftIssue = pathname.includes("draft-issue"); @@ -134,7 +131,7 @@ export const HeaderGroupByCard = observer((props: IHeaderGroupByCard) => { > { - setTrackElement("List layout"); + captureClick({ elementName: WORK_ITEM_TRACKER_EVENTS.create }); setIsOpen(true); }} > @@ -142,7 +139,7 @@ export const HeaderGroupByCard = observer((props: IHeaderGroupByCard) => { { - setTrackElement("List layout"); + captureClick({ elementName: WORK_ITEM_TRACKER_EVENTS.add_existing }); setOpenExistingIssueListModal(true); }} > @@ -153,7 +150,7 @@ export const HeaderGroupByCard = observer((props: IHeaderGroupByCard) => {
{ - setTrackElement("List layout"); + captureClick({ elementName: WORK_ITEM_TRACKER_EVENTS.create }); setIsOpen(true); }} > diff --git a/web/core/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx b/web/core/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx index 3a26c0a617f..e1f4bdc5d05 100644 --- a/web/core/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx +++ b/web/core/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx @@ -13,7 +13,7 @@ import { cn } from "@plane/utils"; import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useEventTracker, useProject, useProjectState } from "@/hooks/store"; +import { useProject, useProjectState } from "@/hooks/store"; // plane-web components import { DuplicateWorkItemModal } from "@/plane-web/components/issues/issue-layouts/quick-action-dropdowns"; import { IQuickActionProps } from "../list/list-view-types"; @@ -40,8 +40,6 @@ export const AllIssueQuickActions: React.FC = observer((props const [duplicateWorkItemModal, setDuplicateWorkItemModal] = useState(false); // router const { workspaceSlug } = useParams(); - // store hooks - const { setTrackElement } = useEventTracker(); const { getStateById } = useProjectState(); const { getProjectIdentifierById } = useProject(); // derived values @@ -71,7 +69,6 @@ export const AllIssueQuickActions: React.FC = observer((props isArchivingAllowed, isDeletingAllowed: isEditingAllowed, isInArchivableGroup, - setTrackElement, setIssueToEdit, setCreateUpdateIssueModal, setDeleteIssueModal, diff --git a/web/core/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx b/web/core/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx index adb246b8a87..1c0884efee6 100644 --- a/web/core/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx +++ b/web/core/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx @@ -17,7 +17,7 @@ import { DeleteIssueModal } from "@/components/issues"; // helpers // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useEventTracker, useIssues, useUserPermissions } from "@/hooks/store"; +import { useIssues, useUserPermissions } from "@/hooks/store"; // types import { IQuickActionProps } from "../list/list-view-types"; // helper @@ -41,7 +41,6 @@ export const ArchivedIssueQuickActions: React.FC = observer(( // store hooks const { allowPermissions } = useUserPermissions(); - const { setTrackElement } = useEventTracker(); const { issuesFilter } = useIssues(EIssuesStoreType.ARCHIVED); // derived values const activeLayout = `${issuesFilter.issueFilters?.displayFilters?.layout} layout`; @@ -59,7 +58,6 @@ export const ArchivedIssueQuickActions: React.FC = observer(( isEditingAllowed, isDeletingAllowed: isEditingAllowed, isRestoringAllowed: !!isRestoringAllowed, - setTrackElement, setIssueToEdit: () => {}, setCreateUpdateIssueModal: () => {}, setDeleteIssueModal, diff --git a/web/core/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx b/web/core/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx index 3734e10405b..8a5fc6c0024 100644 --- a/web/core/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx +++ b/web/core/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx @@ -19,7 +19,7 @@ import { cn } from "@plane/utils"; import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useEventTracker, useIssues, useProject, useProjectState, useUserPermissions } from "@/hooks/store"; +import { useIssues, useProject, useProjectState, useUserPermissions } from "@/hooks/store"; // plane-web components import { DuplicateWorkItemModal } from "@/plane-web/components/issues/issue-layouts/quick-action-dropdowns"; // types @@ -48,8 +48,6 @@ export const CycleIssueQuickActions: React.FC = observer((pro const [duplicateWorkItemModal, setDuplicateWorkItemModal] = useState(false); // router const { workspaceSlug, cycleId } = useParams(); - // store hooks - const { setTrackElement } = useEventTracker(); const { issuesFilter } = useIssues(EIssuesStoreType.CYCLE); const { allowPermissions } = useUserPermissions(); const { getStateById } = useProjectState(); @@ -85,7 +83,6 @@ export const CycleIssueQuickActions: React.FC = observer((pro isArchivingAllowed, isDeletingAllowed, isInArchivableGroup, - setTrackElement, setIssueToEdit, setCreateUpdateIssueModal, setDeleteIssueModal, diff --git a/web/core/components/issues/issue-layouts/quick-action-dropdowns/draft-issue.tsx b/web/core/components/issues/issue-layouts/quick-action-dropdowns/draft-issue.tsx index ca4c720b7d2..00848ceb262 100644 --- a/web/core/components/issues/issue-layouts/quick-action-dropdowns/draft-issue.tsx +++ b/web/core/components/issues/issue-layouts/quick-action-dropdowns/draft-issue.tsx @@ -18,7 +18,7 @@ import { cn } from "@plane/utils"; import { CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useEventTracker, useUserPermissions } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store"; // local imports import { IQuickActionProps } from "../list/list-view-types"; import { useDraftIssueMenuItems, MenuItemFactoryProps } from "./helper"; @@ -43,7 +43,6 @@ export const DraftIssueQuickActions: React.FC = observer((pro const [deleteIssueModal, setDeleteIssueModal] = useState(false); // store hooks const { allowPermissions } = useUserPermissions(); - const { setTrackElement } = useEventTracker(); // derived values const activeLayout = "Draft Issues"; // auth @@ -76,7 +75,6 @@ export const DraftIssueQuickActions: React.FC = observer((pro isEditingAllowed, isDeletingAllowed, isDraftIssue, - setTrackElement, setIssueToEdit, setCreateUpdateIssueModal, setDeleteIssueModal, diff --git a/web/core/components/issues/issue-layouts/quick-action-dropdowns/helper.tsx b/web/core/components/issues/issue-layouts/quick-action-dropdowns/helper.tsx index 3ebcc7e70fd..81c016ea8e4 100644 --- a/web/core/components/issues/issue-layouts/quick-action-dropdowns/helper.tsx +++ b/web/core/components/issues/issue-layouts/quick-action-dropdowns/helper.tsx @@ -57,7 +57,6 @@ export interface MenuItemFactoryProps { issueTypeDetail?: { is_active?: boolean }; isDraftIssue?: boolean; // Action handlers - setTrackElement: (element: string) => void; setIssueToEdit: (issue: TIssue | undefined) => void; setCreateUpdateIssueModal: (open: boolean) => void; setDeleteIssueModal: (open: boolean) => void; @@ -145,7 +144,6 @@ export const useMenuItemFactory = (props: MenuItemFactoryProps) => { isRestoringAllowed = false, isInArchivableGroup = false, issueTypeDetail, - setTrackElement, setIssueToEdit, setCreateUpdateIssueModal, setDeleteIssueModal, @@ -161,7 +159,6 @@ export const useMenuItemFactory = (props: MenuItemFactoryProps) => { action: customEditAction || (() => { - setTrackElement(activeLayout); setIssueToEdit(issue); setCreateUpdateIssueModal(true); }), @@ -174,7 +171,6 @@ export const useMenuItemFactory = (props: MenuItemFactoryProps) => { title: t("common.actions.make_a_copy"), icon: Copy, action: () => { - setTrackElement(activeLayout); setCreateUpdateIssueModal(true); }, shouldRender: isEditingAllowed && (issueTypeDetail?.is_active ?? true), @@ -183,7 +179,6 @@ export const useMenuItemFactory = (props: MenuItemFactoryProps) => { return createCopyMenuWithDuplication({ baseItem, activeLayout, - setTrackElement, setCreateUpdateIssueModal, setDuplicateWorkItemModal, }); @@ -244,7 +239,6 @@ export const useMenuItemFactory = (props: MenuItemFactoryProps) => { title: t("common.actions.delete"), icon: Trash2, action: () => { - setTrackElement(activeLayout); setDeleteIssueModal(true); }, shouldRender: isDeletingAllowed, @@ -305,7 +299,6 @@ export const useCycleIssueMenuItems = (props: MenuItemFactoryProps): TContextMen ...props.issue, cycle_id: props.cycleId ?? null, }); - props.setTrackElement(props.activeLayout || ""); props.setCreateUpdateIssueModal(true); }; @@ -331,7 +324,6 @@ export const useModuleIssueMenuItems = (props: MenuItemFactoryProps): TContextMe ...props.issue, module_ids: props.moduleId ? [props.moduleId] : [], }); - props.setTrackElement(props.activeLayout || ""); props.setCreateUpdateIssueModal(true); }; diff --git a/web/core/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx b/web/core/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx index 6901e249c04..6bd96b17af7 100644 --- a/web/core/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx +++ b/web/core/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx @@ -19,7 +19,7 @@ import { cn } from "@plane/utils"; import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useIssues, useEventTracker, useProjectState, useUserPermissions, useProject } from "@/hooks/store"; +import { useIssues, useProjectState, useUserPermissions, useProject } from "@/hooks/store"; // plane-web components import { DuplicateWorkItemModal } from "@/plane-web/components/issues/issue-layouts/quick-action-dropdowns"; import { IQuickActionProps } from "../list/list-view-types"; @@ -48,7 +48,6 @@ export const ModuleIssueQuickActions: React.FC = observer((pr // router const { workspaceSlug, moduleId } = useParams(); // store hooks - const { setTrackElement } = useEventTracker(); const { issuesFilter } = useIssues(EIssuesStoreType.MODULE); const { allowPermissions } = useUserPermissions(); const { getStateById } = useProjectState(); @@ -84,7 +83,6 @@ export const ModuleIssueQuickActions: React.FC = observer((pr isArchivingAllowed, isDeletingAllowed, isInArchivableGroup, - setTrackElement, setIssueToEdit, setCreateUpdateIssueModal, setDeleteIssueModal, diff --git a/web/core/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx b/web/core/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx index 29177848b9b..2fb79bbabe7 100644 --- a/web/core/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx +++ b/web/core/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx @@ -19,7 +19,7 @@ import { cn } from "@plane/utils"; import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useEventTracker, useIssues, useProject, useProjectState, useUserPermissions } from "@/hooks/store"; +import { useIssues, useProject, useProjectState, useUserPermissions } from "@/hooks/store"; // plane-web components import { DuplicateWorkItemModal } from "@/plane-web/components/issues/issue-layouts/quick-action-dropdowns"; import { IQuickActionProps } from "../list/list-view-types"; @@ -49,7 +49,6 @@ export const ProjectIssueQuickActions: React.FC = observer((p const [duplicateWorkItemModal, setDuplicateWorkItemModal] = useState(false); // store hooks const { allowPermissions } = useUserPermissions(); - const { setTrackElement } = useEventTracker(); const { issuesFilter } = useIssues(EIssuesStoreType.PROJECT); const { getStateById } = useProjectState(); const { getProjectIdentifierById } = useProject(); @@ -92,7 +91,6 @@ export const ProjectIssueQuickActions: React.FC = observer((p isDeletingAllowed, isInArchivableGroup, isDraftIssue, - setTrackElement, setIssueToEdit, setCreateUpdateIssueModal, setDeleteIssueModal, diff --git a/web/core/components/project/settings/features-list.tsx b/web/core/components/project/settings/features-list.tsx index faa41a0e1d7..b2b8c2c0bd5 100644 --- a/web/core/components/project/settings/features-list.tsx +++ b/web/core/components/project/settings/features-list.tsx @@ -2,12 +2,13 @@ import { FC } from "react"; import { observer } from "mobx-react"; +import { PROJECT_TRACKER_ELEMENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { IProject } from "@plane/types"; import { ToggleSwitch, Tooltip, setPromiseToast } from "@plane/ui"; // hooks import { SettingsHeading } from "@/components/settings"; -import { useEventTracker, useProject, useUser } from "@/hooks/store"; +import { useProject, useUser } from "@/hooks/store"; // plane web components import { UpgradeBadge } from "@/plane-web/components/workspace"; // plane web constants @@ -23,7 +24,6 @@ export const ProjectFeaturesList: FC = observer((props) => { const { workspaceSlug, projectId, isAdmin } = props; // store hooks const { t } = useTranslation(); - const { captureEvent } = useEventTracker(); const { data: currentUser } = useUser(); const { getProjectById, updateProject } = useProject(); // derived values @@ -32,12 +32,6 @@ export const ProjectFeaturesList: FC = observer((props) => { const handleSubmit = async (featureKey: string, featureProperty: string) => { if (!workspaceSlug || !projectId || !currentProjectDetails) return; - // capturing event - captureEvent(`Toggle ${featureKey}`, { - enabled: !currentProjectDetails?.[featureProperty as keyof IProject], - element: "Project settings feature page", - }); - // making the request to update the project feature const settingsPayload = { [featureProperty]: !currentProjectDetails?.[featureProperty as keyof IProject], @@ -92,6 +86,7 @@ export const ProjectFeaturesList: FC = observer((props) => { onChange={() => handleSubmit(featureItemKey, featureItem.property)} disabled={!featureItem.isEnabled || !isAdmin} size="sm" + data-ph-element={PROJECT_TRACKER_ELEMENTS.TOGGLE_FEATURE} />