From 1f89fcdafaeba2f69036dfa9628d648073f1dc1b Mon Sep 17 00:00:00 2001 From: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com> Date: Tue, 16 Dec 2025 12:41:58 +0530 Subject: [PATCH] fix: update event tracking to use created_at from response in cycle and issue creation, and reorganize imports in workspace components --- apps/web/core/components/cycles/modal.tsx | 2 +- .../issues/issue-layouts/quick-add/root.tsx | 4 ++-- .../onboarding/steps/workspace/create.tsx | 15 ++++++++------- .../components/pages/modals/create-page-modal.tsx | 6 +++--- .../workspace/delete-workspace-form.tsx | 12 ++++++------ 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/apps/web/core/components/cycles/modal.tsx b/apps/web/core/components/cycles/modal.tsx index 87df8e455a..814433bce5 100644 --- a/apps/web/core/components/cycles/modal.tsx +++ b/apps/web/core/components/cycles/modal.tsx @@ -72,7 +72,7 @@ export function CycleCreateUpdateModal(props: CycleModalProps) { if (currentWorkspace && currentUser) { const role = getWorkspaceRoleByWorkspaceSlug(currentWorkspace.slug); trackCycleCreated( - { id: res.id, created_at: new Date().toISOString() }, + { id: res.id, created_at: res?.created_at ?? "" }, { id: projectId }, currentWorkspace, currentUser, diff --git a/apps/web/core/components/issues/issue-layouts/quick-add/root.tsx b/apps/web/core/components/issues/issue-layouts/quick-add/root.tsx index 6d3eae68f7..50eb9ddf15 100644 --- a/apps/web/core/components/issues/issue-layouts/quick-add/root.tsx +++ b/apps/web/core/components/issues/issue-layouts/quick-add/root.tsx @@ -12,7 +12,7 @@ import { setPromiseToast } from "@plane/propel/toast"; import type { IProject, TIssue, EIssueLayoutTypes } from "@plane/types"; import { cn, createIssuePayload } from "@plane/utils"; // helpers -import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; +import { captureError } from "@/helpers/event-tracker.helper"; // plane web imports import { QuickAddIssueFormRoot } from "@/plane-web/components/issues/quick-add"; // local imports @@ -142,7 +142,7 @@ export const QuickAddIssueRoot = observer(function QuickAddIssueRoot(props: TQui if (currentWorkspace && currentUser && quickAddRes) { const role = getWorkspaceRoleByWorkspaceSlug(currentWorkspace.slug); trackWorkItemCreated( - { id: quickAddRes.id, created_at: new Date().toISOString() }, + { id: quickAddRes.id, created_at: quickAddRes.created_at ?? "" }, { id: projectId.toString() }, currentWorkspace, currentUser, diff --git a/apps/web/core/components/onboarding/steps/workspace/create.tsx b/apps/web/core/components/onboarding/steps/workspace/create.tsx index 5fb7632a09..d242365314 100644 --- a/apps/web/core/components/onboarding/steps/workspace/create.tsx +++ b/apps/web/core/components/onboarding/steps/workspace/create.tsx @@ -1,7 +1,7 @@ -import { useState } from "react"; -import { observer } from "mobx-react"; -import { Controller, useForm } from "react-hook-form"; import { CircleCheck } from "lucide-react"; +import { observer } from "mobx-react"; +import { useState } from "react"; +import { Controller, useForm } from "react-hook-form"; // plane imports import { ORGANIZATION_SIZE, @@ -16,7 +16,7 @@ import type { IUser, IWorkspace } from "@plane/types"; import { Spinner } from "@plane/ui"; import { cn } from "@plane/utils"; // helpers -import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; +import { captureError } from "@/helpers/event-tracker.helper"; // hooks import { useWorkspace } from "@/hooks/store/use-workspace"; import { useUser, useUserPermissions, useUserProfile, useUserSettings } from "@/hooks/store/user"; @@ -24,8 +24,8 @@ import { useUser, useUserPermissions, useUserProfile, useUserSettings } from "@/ import { getIsWorkspaceCreationDisabled } from "@/plane-web/helpers/instance.helper"; import { WorkspaceService } from "@/plane-web/services"; // local components -import { CommonOnboardingHeader } from "../common"; import { getUserRoleString, trackWorkspaceCreated } from "@/plane-web/helpers/event-tracker-v2.helper"; +import { CommonOnboardingHeader } from "../common"; type Props = { user: IUser | undefined; @@ -85,12 +85,13 @@ export const WorkspaceCreateStep = observer(function WorkspaceCreateStep({ message: t("workspace_creation.toast.success.message"), }); + await fetchWorkspaces(); + const role = getWorkspaceRoleByWorkspaceSlug(workspaceResponse.slug); + if (currentUser) { - const role = getWorkspaceRoleByWorkspaceSlug(workspaceResponse.slug); trackWorkspaceCreated(workspaceResponse, currentUser, getUserRoleString(role)); } - await fetchWorkspaces(); await completeStep(workspaceResponse.id); onComplete(formData.organization_size === "Just myself"); } catch { diff --git a/apps/web/core/components/pages/modals/create-page-modal.tsx b/apps/web/core/components/pages/modals/create-page-modal.tsx index 51a86dc224..574a320f60 100644 --- a/apps/web/core/components/pages/modals/create-page-modal.tsx +++ b/apps/web/core/components/pages/modals/create-page-modal.tsx @@ -13,10 +13,10 @@ import { setToast, TOAST_TYPE } from "@plane/propel/toast"; import type { EPageStoreType } from "@/plane-web/hooks/store"; import { usePageStore } from "@/plane-web/hooks/store"; // local imports -import { PageForm } from "./page-form"; -import { useUser, useUserPermissions } from "@/hooks/store/user"; import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUser, useUserPermissions } from "@/hooks/store/user"; import { getUserRoleString, trackPageCreated } from "@/plane-web/helpers/event-tracker-v2.helper"; +import { PageForm } from "./page-form"; type Props = { workspaceSlug: string; @@ -69,7 +69,7 @@ export function CreatePageModal(props: Props) { if (!workspaceSlug || !projectId) return; try { - const pageData = await createPage?.(pageFormData); + const pageData = await createPage(pageFormData); if (pageData) { if (currentWorkspace && currentUser) { const role = getWorkspaceRoleByWorkspaceSlug(currentWorkspace.slug); diff --git a/apps/web/core/components/workspace/delete-workspace-form.tsx b/apps/web/core/components/workspace/delete-workspace-form.tsx index 96761aa2cb..c714d65e70 100644 --- a/apps/web/core/components/workspace/delete-workspace-form.tsx +++ b/apps/web/core/components/workspace/delete-workspace-form.tsx @@ -1,7 +1,6 @@ -import React from "react"; +import { AlertTriangle } from "lucide-react"; import { observer } from "mobx-react"; import { Controller, useForm } from "react-hook-form"; -import { AlertTriangle } from "lucide-react"; // types import { WORKSPACE_TRACKER_EVENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; @@ -11,12 +10,12 @@ import type { IWorkspace } from "@plane/types"; // ui import { Input } from "@plane/ui"; // hooks -import { cn } from "@plane/utils"; -import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; +import { captureError } from "@/helpers/event-tracker.helper"; import { useWorkspace } from "@/hooks/store/use-workspace"; import { useUser, useUserPermissions, useUserSettings } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; import { getUserRoleString, trackWorkspaceDeleted } from "@/plane-web/helpers/event-tracker-v2.helper"; +import { cn } from "@plane/utils"; type Props = { data: IWorkspace | null; @@ -69,8 +68,9 @@ export const DeleteWorkspaceForm = observer(function DeleteWorkspaceForm(props: handleClose(); router.push(getWorkspaceRedirectionUrl()); - if (currentUser && data) { - const role = getWorkspaceRoleByWorkspaceSlug(data.slug); + const role = getWorkspaceRoleByWorkspaceSlug(data.slug); + + if (currentUser) { trackWorkspaceDeleted(data, currentUser, getUserRoleString(role)); }