From 2894410fb9e60472a2bba54b34638ff75e2e55f8 Mon Sep 17 00:00:00 2001 From: Sriram Veeraghanta Date: Tue, 18 Aug 2026 02:07:49 +0530 Subject: [PATCH 1/2] chore: remove posthog integration and analytics scaffold Removes the PostHog integration end to end, plus the inert autocapture scaffold left behind by an earlier partial removal (d61b157929, "chore: remove posthog events (#8465)"). Backend: - delete bgtasks/event_tracking_task.py and utils/analytics_events.py - drop all 6 track_event.delay call sites - drop POSTHOG_API_KEY / POSTHOG_HOST settings - stop returning posthog_api_key / posthog_host from GET /api/instances/ - drop the posthog==3.5.0 dependency Frontend: - delete packages/constants/src/event-tracker (all 40 exports were unused) - remove 42 data-ph-element attributes across 36 files - remove the dead shouldTrackEvents and trackerElements prop chains - remove the Microsoft Clarity session-recording tag Note: GET /api/instances/ no longer returns posthog_api_key/posthog_host. Nothing in this repo read them and neither do plane-ee or plane-commercial, but the endpoint is AllowAny and cached for 2h. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01HD7dTidmtWWRRiFv3nmW3s --- apps/api/plane/app/views/workspace/base.py | 29 - apps/api/plane/app/views/workspace/invite.py | 41 -- .../utils/workspace_project_join.py | 17 - apps/api/plane/bgtasks/event_tracking_task.py | 81 --- apps/api/plane/license/api/views/instance.py | 14 - apps/api/plane/settings/common.py | 4 - apps/api/plane/utils/analytics_events.py | 8 - apps/api/requirements/base.txt | 2 - .../(projects)/extended-project-sidebar.tsx | 3 +- .../[projectId]/cycles/(detail)/header.tsx | 2 - .../[projectId]/cycles/(list)/header.tsx | 3 +- .../[projectId]/cycles/(list)/page.tsx | 3 +- .../[projectId]/modules/(detail)/header.tsx | 2 - .../[projectId]/modules/(list)/header.tsx | 3 +- .../views/(detail)/[viewId]/header.tsx | 2 - .../[projectId]/views/(list)/header.tsx | 2 - .../(projects)/workspace-views/header.tsx | 2 - .../(settings)/settings/projects/page.tsx | 8 +- apps/web/app/layout.tsx | 13 - apps/web/app/root.tsx | 12 - .../account/auth-forms/password.tsx | 4 +- .../components/api-token/token-list-item.tsx | 2 - .../core/components/auth-screens/header.tsx | 2 - .../estimates/estimate-list-item-buttons.tsx | 2 - .../global/product-updates/footer.tsx | 2 - apps/web/core/components/issues/header.tsx | 2 - .../issue-layouts/empty-states/cycle.tsx | 4 +- .../roots/all-issue-layout-root.tsx | 11 +- .../issue-layouts/roots/cycle-layout-root.tsx | 11 +- .../roots/module-layout-root.tsx | 11 +- .../roots/project-layout-root.tsx | 11 +- .../roots/project-view-layout-root.tsx | 11 +- .../labels/label-block/label-item-block.tsx | 2 - .../components/modules/links/list-item.tsx | 3 - .../components/modules/modules-list-view.tsx | 3 +- .../navigation/project-actions-menu.tsx | 6 +- .../project-states/create-update/create.tsx | 1 - .../project-states/create-update/update.tsx | 1 - .../components/project-states/group-item.tsx | 7 +- .../components/project-states/group-list.tsx | 3 - .../project-states/options/delete.tsx | 1 - .../core/components/project-states/root.tsx | 1 - .../project-states/state-item-title.tsx | 5 +- .../components/project-states/state-item.tsx | 4 - .../components/project-states/state-list.tsx | 3 - apps/web/core/components/project/header.tsx | 3 +- .../core/components/project/member-list.tsx | 3 +- .../project/settings/control-section.tsx | 2 - .../components/project/settings/helper.tsx | 2 - .../project/settings/member-columns.tsx | 3 +- .../components/rich-filters/filters-row.tsx | 28 +- .../web-hooks/form/delete-section.tsx | 2 - .../core/components/web-hooks/form/form.tsx | 2 - .../workspace/delete-workspace-section.tsx | 7 +- .../workspace/settings/member-columns.tsx | 3 +- .../workspace/sidebar/projects-list-item.tsx | 7 +- .../workspace/sidebar/projects-list.tsx | 4 +- .../workspace/sidebar/quick-actions.tsx | 3 +- packages/constants/src/event-tracker/core.ts | 508 ------------------ packages/constants/src/event-tracker/index.ts | 7 - packages/constants/src/index.ts | 1 - packages/types/src/instance/base.ts | 2 - turbo.json | 2 - 63 files changed, 33 insertions(+), 920 deletions(-) delete mode 100644 apps/api/plane/bgtasks/event_tracking_task.py delete mode 100644 apps/api/plane/utils/analytics_events.py delete mode 100644 packages/constants/src/event-tracker/core.ts delete mode 100644 packages/constants/src/event-tracker/index.ts diff --git a/apps/api/plane/app/views/workspace/base.py b/apps/api/plane/app/views/workspace/base.py index be43eace2f6..f8a7d06f291 100644 --- a/apps/api/plane/app/views/workspace/base.py +++ b/apps/api/plane/app/views/workspace/base.py @@ -46,9 +46,7 @@ from plane.utils.constants import RESTRICTED_WORKSPACE_SLUGS from plane.license.utils.instance_value import get_configuration_value from plane.bgtasks.workspace_seed_task import workspace_seed -from plane.bgtasks.event_tracking_task import track_event from plane.utils.url import contains_url -from plane.utils.analytics_events import WORKSPACE_CREATED, WORKSPACE_DELETED from plane.utils.csv_utils import sanitize_csv_row @@ -138,20 +136,6 @@ def create(self, request): workspace_seed.delay(serializer.data["id"]) - track_event.delay( - user_id=request.user.id, - event_name=WORKSPACE_CREATED, - slug=data["slug"], - event_properties={ - "user_id": request.user.id, - "workspace_id": data["id"], - "workspace_slug": data["slug"], - "role": "owner", - "workspace_name": data["name"], - "created_at": data["created_at"], - }, - ) - return Response(data, status=status.HTTP_201_CREATED) return Response( [serializer.errors[error][0] for error in serializer.errors], @@ -185,19 +169,6 @@ def destroy(self, request, *args, **kwargs): # Get the workspace workspace = self.get_object() self.remove_last_workspace_ids_from_user_settings(workspace.id) - track_event.delay( - user_id=request.user.id, - event_name=WORKSPACE_DELETED, - slug=workspace.slug, - event_properties={ - "user_id": request.user.id, - "workspace_id": workspace.id, - "workspace_slug": workspace.slug, - "role": "owner", - "workspace_name": workspace.name, - "deleted_at": str(timezone.now().isoformat()), - }, - ) return super().destroy(request, *args, **kwargs) diff --git a/apps/api/plane/app/views/workspace/invite.py b/apps/api/plane/app/views/workspace/invite.py index 0c61bce4419..6fbc9beb758 100644 --- a/apps/api/plane/app/views/workspace/invite.py +++ b/apps/api/plane/app/views/workspace/invite.py @@ -26,12 +26,10 @@ WorkSpaceMemberSerializer, ) from plane.app.views.base import BaseAPIView -from plane.bgtasks.event_tracking_task import track_event from plane.bgtasks.workspace_invitation_task import workspace_invitation from plane.db.models import User, Workspace, WorkspaceMember, WorkspaceMemberInvite from plane.utils.cache import invalidate_cache, invalidate_cache_directly from plane.utils.host import base_host -from plane.utils.analytics_events import USER_JOINED_WORKSPACE, USER_INVITED_TO_WORKSPACE from .. import BaseViewSet @@ -126,19 +124,6 @@ def create(self, request, slug): current_site, request.user.email, ) - track_event.delay( - user_id=request.user.id, - event_name=USER_INVITED_TO_WORKSPACE, - slug=slug, - event_properties={ - "user_id": request.user.id, - "workspace_id": workspace.id, - "workspace_slug": workspace.slug, - "invitee_role": invitation.role, - "invited_at": str(timezone.now()), - "invitee_email": invitation.email, - }, - ) return Response({"message": "Emails sent successfully"}, status=status.HTTP_200_OK) @@ -219,18 +204,6 @@ def post(self, request, slug, pk): # Set the user last_workspace_id to the accepted workspace user.last_workspace_id = workspace_invite.workspace.id user.save() - track_event.delay( - user_id=user.id, - event_name=USER_JOINED_WORKSPACE, - slug=slug, - event_properties={ - "user_id": user.id, - "workspace_id": workspace_invite.workspace.id, - "workspace_slug": workspace_invite.workspace.slug, - "role": workspace_invite.role, - "joined_at": str(timezone.now()), - }, - ) # Delete the invitation workspace_invite.delete() @@ -290,20 +263,6 @@ def create(self, request): is_active=True, role=invitation.role ) - # Track event - track_event.delay( - user_id=request.user.id, - event_name=USER_JOINED_WORKSPACE, - slug=invitation.workspace.slug, - event_properties={ - "user_id": request.user.id, - "workspace_id": invitation.workspace.id, - "workspace_slug": invitation.workspace.slug, - "role": invitation.role, - "joined_at": str(timezone.now()), - }, - ) - # Bulk create the user for all the workspaces WorkspaceMember.objects.bulk_create( [ diff --git a/apps/api/plane/authentication/utils/workspace_project_join.py b/apps/api/plane/authentication/utils/workspace_project_join.py index 9222791a845..5a5786f78e7 100644 --- a/apps/api/plane/authentication/utils/workspace_project_join.py +++ b/apps/api/plane/authentication/utils/workspace_project_join.py @@ -2,9 +2,6 @@ # SPDX-License-Identifier: AGPL-3.0-only # See the LICENSE file for details. -# Django imports -from django.utils import timezone - # Module imports from plane.db.models import ( ProjectMember, @@ -13,8 +10,6 @@ WorkspaceMemberInvite, ) from plane.utils.cache import invalidate_cache_directly -from plane.bgtasks.event_tracking_task import track_event -from plane.utils.analytics_events import USER_JOINED_WORKSPACE def process_workspace_project_invitations(user): @@ -42,18 +37,6 @@ def process_workspace_project_invitations(user): user=False, multiple=True, ) - track_event.delay( - user_id=user.id, - event_name=USER_JOINED_WORKSPACE, - slug=workspace_member_invite.workspace.slug, - event_properties={ - "user_id": user.id, - "workspace_id": workspace_member_invite.workspace.id, - "workspace_slug": workspace_member_invite.workspace.slug, - "role": workspace_member_invite.role, - "joined_at": str(timezone.now().isoformat()), - }, - ) # Check if user has any project invites project_member_invites = ProjectMemberInvite.objects.filter(email=user.email, accepted=True) diff --git a/apps/api/plane/bgtasks/event_tracking_task.py b/apps/api/plane/bgtasks/event_tracking_task.py deleted file mode 100644 index e8f453e9fff..00000000000 --- a/apps/api/plane/bgtasks/event_tracking_task.py +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright (c) 2023-present Plane Software, Inc. and contributors -# SPDX-License-Identifier: AGPL-3.0-only -# See the LICENSE file for details. - -import logging -import os -import uuid -from typing import Dict, Any - -# third party imports -from celery import shared_task -from posthog import Posthog - -# module imports -from plane.license.utils.instance_value import get_configuration_value -from plane.utils.exception_logger import log_exception -from plane.db.models import Workspace -from plane.utils.analytics_events import USER_INVITED_TO_WORKSPACE, WORKSPACE_DELETED - - -logger = logging.getLogger("plane.worker") - - -def posthogConfiguration(): - POSTHOG_API_KEY, POSTHOG_HOST = get_configuration_value( - [ - { - "key": "POSTHOG_API_KEY", - "default": os.environ.get("POSTHOG_API_KEY", None), - }, - { - "key": "POSTHOG_HOST", - "default": os.environ.get("POSTHOG_HOST", None), - }, - ] - ) - if POSTHOG_API_KEY and POSTHOG_HOST: - return POSTHOG_API_KEY, POSTHOG_HOST - else: - return None, None - - -def preprocess_data_properties( - user_id: uuid.UUID, event_name: str, slug: str, data_properties: Dict[str, Any] -) -> Dict[str, Any]: - if event_name == USER_INVITED_TO_WORKSPACE or event_name == WORKSPACE_DELETED: - try: - # Check if the current user is the workspace owner - workspace = Workspace.objects.get(slug=slug) - if str(workspace.owner_id) == str(user_id): - data_properties["role"] = "owner" - else: - data_properties["role"] = "admin" - except Workspace.DoesNotExist: - logger.warning(f"Workspace {slug} does not exist while sending event {event_name} for user {user_id}") - data_properties["role"] = "unknown" - - return data_properties - - -@shared_task -def track_event(user_id: uuid.UUID, event_name: str, slug: str, event_properties: Dict[str, Any]): - POSTHOG_API_KEY, POSTHOG_HOST = posthogConfiguration() - - if not (POSTHOG_API_KEY and POSTHOG_HOST): - logger.warning("Event tracking is not configured") - return - - try: - # preprocess the data properties for massaging the payload - # in the correct format for posthog - data_properties = preprocess_data_properties(user_id, event_name, slug, event_properties) - groups = { - "workspace": slug, - } - # track the event using posthog - posthog = Posthog(POSTHOG_API_KEY, host=POSTHOG_HOST) - posthog.capture(distinct_id=str(user_id), event=event_name, properties=data_properties, groups=groups) - except Exception as e: - log_exception(e) - return False diff --git a/apps/api/plane/license/api/views/instance.py b/apps/api/plane/license/api/views/instance.py index 29c2521abd8..a805411eee6 100644 --- a/apps/api/plane/license/api/views/instance.py +++ b/apps/api/plane/license/api/views/instance.py @@ -59,8 +59,6 @@ def get(self, request): ENABLE_MAGIC_LINK_LOGIN, ENABLE_EMAIL_PASSWORD, SLACK_CLIENT_ID, - POSTHOG_API_KEY, - POSTHOG_HOST, UNSPLASH_ACCESS_KEY, LLM_API_KEY, ) = get_configuration_value( @@ -106,14 +104,6 @@ def get(self, request): "key": "SLACK_CLIENT_ID", "default": os.environ.get("SLACK_CLIENT_ID", None), }, - { - "key": "POSTHOG_API_KEY", - "default": os.environ.get("POSTHOG_API_KEY", None), - }, - { - "key": "POSTHOG_HOST", - "default": os.environ.get("POSTHOG_HOST", None), - }, { "key": "UNSPLASH_ACCESS_KEY", "default": os.environ.get("UNSPLASH_ACCESS_KEY", ""), @@ -142,10 +132,6 @@ def get(self, request): # Slack client data["slack_client_id"] = SLACK_CLIENT_ID - # Posthog - data["posthog_api_key"] = POSTHOG_API_KEY - data["posthog_host"] = POSTHOG_HOST - # Unsplash data["has_unsplash_configured"] = bool(UNSPLASH_ACCESS_KEY) diff --git a/apps/api/plane/settings/common.py b/apps/api/plane/settings/common.py index 25a212e7639..7f942a1bdca 100644 --- a/apps/api/plane/settings/common.py +++ b/apps/api/plane/settings/common.py @@ -361,10 +361,6 @@ ANALYTICS_SECRET_KEY = os.environ.get("ANALYTICS_SECRET_KEY", False) ANALYTICS_BASE_API = os.environ.get("ANALYTICS_BASE_API", False) -# Posthog settings -POSTHOG_API_KEY = os.environ.get("POSTHOG_API_KEY", False) -POSTHOG_HOST = os.environ.get("POSTHOG_HOST", False) - # Skip environment variable configuration SKIP_ENV_VAR = os.environ.get("SKIP_ENV_VAR", "1") == "1" diff --git a/apps/api/plane/utils/analytics_events.py b/apps/api/plane/utils/analytics_events.py deleted file mode 100644 index ce06ba92e68..00000000000 --- a/apps/api/plane/utils/analytics_events.py +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2023-present Plane Software, Inc. and contributors -# SPDX-License-Identifier: AGPL-3.0-only -# See the LICENSE file for details. - -USER_JOINED_WORKSPACE = "user_joined_workspace" -USER_INVITED_TO_WORKSPACE = "user_invited_to_workspace" -WORKSPACE_CREATED = "workspace_created" -WORKSPACE_DELETED = "workspace_deleted" diff --git a/apps/api/requirements/base.txt b/apps/api/requirements/base.txt index 1b27295fd97..4fff6c6550c 100644 --- a/apps/api/requirements/base.txt +++ b/apps/api/requirements/base.txt @@ -46,8 +46,6 @@ openpyxl==3.1.2 python-json-logger==4.0.0 # html parser beautifulsoup4==4.12.3 -# analytics -posthog==3.5.0 # crypto cryptography==50.0.0 # html validator diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx index 33ecb44aa82..8b1c74a1db5 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx @@ -8,7 +8,7 @@ import { useCallback, useRef, useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // plane imports -import { EUserPermissions, EUserPermissionsLevel, PROJECT_TRACKER_ELEMENTS } from "@plane/constants"; +import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { EmptyStateCompact } from "@plane/propel/empty-state"; import { PlusIcon, SearchIcon } from "@plane/propel/icons"; @@ -117,7 +117,6 @@ export const ExtendedProjectSidebar = observer(function ExtendedProjectSidebar() diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx index 8f97d3ed9fd..5e757289535 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx @@ -7,7 +7,7 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // ui -import { EUserPermissions, EUserPermissionsLevel, CYCLE_TRACKER_ELEMENTS } from "@plane/constants"; +import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/propel/button"; import { CycleIcon } from "@plane/propel/icons"; @@ -63,7 +63,6 @@ export const CyclesListHeader = observer(function CyclesListHeader() { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/header.tsx index 7e2f7dea742..e5497ed82a5 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/header.tsx @@ -7,7 +7,7 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // plane imports -import { EUserPermissions, EUserPermissionsLevel, MODULE_TRACKER_ELEMENTS } from "@plane/constants"; +import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // ui import { Button } from "@plane/propel/button"; @@ -67,7 +67,6 @@ export const ModulesListHeader = observer(function ModulesListHeader() { {canUserCreateModule ? ( diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx index 2cc0c0b9ce8..fa19798e11b 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx @@ -7,7 +7,6 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // ui -import { PROJECT_VIEW_TRACKER_ELEMENTS } from "@plane/constants"; import { Button } from "@plane/propel/button"; import { ViewsIcon } from "@plane/propel/icons"; import { Breadcrumbs, Header } from "@plane/ui"; @@ -49,7 +48,6 @@ export const ProjectViewsHeader = observer(function ProjectViewsHeader() {
+
); diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx index df5a8daf3f6..15c33b0094f 100644 --- a/apps/web/app/layout.tsx +++ b/apps/web/app/layout.tsx @@ -4,8 +4,6 @@ * See the LICENSE file for details. */ -import Script from "next/script"; - // styles import "@/styles/globals.css"; @@ -56,8 +54,6 @@ export const meta = () => [ ]; export default function RootLayout({ children }: { children: React.ReactNode }) { - const isSessionRecorderEnabled = parseInt(process.env.VITE_ENABLE_SESSION_RECORDER || "0"); - return ( @@ -87,15 +83,6 @@ export default function RootLayout({ children }: { children: React.ReactNode }) - {!!isSessionRecorderEnabled && process.env.VITE_SESSION_RECORDER_KEY && ( - - )} ); } diff --git a/apps/web/app/root.tsx b/apps/web/app/root.tsx index 08a38e632eb..d68ffa0a342 100644 --- a/apps/web/app/root.tsx +++ b/apps/web/app/root.tsx @@ -5,7 +5,6 @@ */ import type { ReactNode } from "react"; -import Script from "next/script"; import { Links, Meta, Outlet, Scripts } from "react-router"; import type { LinksFunction } from "react-router"; import { ThemeProvider, useTheme } from "next-themes"; @@ -57,8 +56,6 @@ export const links: LinksFunction = () => [ ]; export function Layout({ children }: { children: ReactNode }) { - const isSessionRecorderEnabled = parseInt(process.env.VITE_ENABLE_SESSION_RECORDER || "0"); - return ( @@ -82,15 +79,6 @@ export function Layout({ children }: { children: ReactNode }) { {children} - {!!isSessionRecorderEnabled && process.env.VITE_SESSION_RECORDER_KEY && ( - - )} ); diff --git a/apps/web/core/components/account/auth-forms/password.tsx b/apps/web/core/components/account/auth-forms/password.tsx index 8ebe3c827d3..09ccac02c6f 100644 --- a/apps/web/core/components/account/auth-forms/password.tsx +++ b/apps/web/core/components/account/auth-forms/password.tsx @@ -10,7 +10,7 @@ import Link from "next/link"; // icons import { Eye, EyeOff, Info, XCircle } from "lucide-react"; // plane imports -import { API_BASE_URL, E_PASSWORD_STRENGTH, AUTH_TRACKER_ELEMENTS } from "@plane/constants"; +import { API_BASE_URL, E_PASSWORD_STRENGTH } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/propel/button"; import { CloseIcon } from "@plane/propel/icons"; @@ -86,7 +86,6 @@ export const AuthPasswordForm = observer(function AuthPasswordForm(props: Props)
{isSMTPConfigured ? ( @@ -292,7 +291,6 @@ export const AuthPasswordForm = observer(function AuthPasswordForm(props: Props) {isSMTPConfigured && ( diff --git a/apps/web/core/components/auth-screens/header.tsx b/apps/web/core/components/auth-screens/header.tsx index 817bdf4464c..2c6da9b6625 100644 --- a/apps/web/core/components/auth-screens/header.tsx +++ b/apps/web/core/components/auth-screens/header.tsx @@ -7,7 +7,6 @@ import React from "react"; import { observer } from "mobx-react"; import Link from "next/link"; -import { AUTH_TRACKER_ELEMENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { PlaneLockup } from "@plane/propel/icons"; import { PageHead } from "@/components/core/page-title"; @@ -48,7 +47,6 @@ export const AuthHeader = observer(function AuthHeader({ type }: AuthHeaderProps
{t(authContentMap[type].text)} diff --git a/apps/web/core/components/estimates/estimate-list-item-buttons.tsx b/apps/web/core/components/estimates/estimate-list-item-buttons.tsx index a289ca0f751..e459e458ef2 100644 --- a/apps/web/core/components/estimates/estimate-list-item-buttons.tsx +++ b/apps/web/core/components/estimates/estimate-list-item-buttons.tsx @@ -5,7 +5,6 @@ */ import { observer } from "mobx-react"; -import { PROJECT_SETTINGS_TRACKER_ELEMENTS } from "@plane/constants"; import { TrashIcon } from "@plane/propel/icons"; type TEstimateListItem = { @@ -26,7 +25,6 @@ export const EstimateListItemButtons = observer(function EstimateListItemButtons diff --git a/apps/web/core/components/global/product-updates/footer.tsx b/apps/web/core/components/global/product-updates/footer.tsx index ed0a185a545..09965aac3e3 100644 --- a/apps/web/core/components/global/product-updates/footer.tsx +++ b/apps/web/core/components/global/product-updates/footer.tsx @@ -4,7 +4,6 @@ * See the LICENSE file for details. */ -import { USER_TRACKER_ELEMENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // ui import { getButtonStyling } from "@plane/propel/button"; @@ -29,7 +28,6 @@ export function ProductUpdatesFooter() { { toggleCreateIssueModal(true, EIssuesStoreType.PROJECT); }} - data-ph-element={WORK_ITEM_TRACKER_ELEMENTS.HEADER_ADD_BUTTON.WORK_ITEMS} >
{t("issue.label", { count: 1 })}
{t("issue.add.label")}
diff --git a/apps/web/core/components/issues/issue-layouts/empty-states/cycle.tsx b/apps/web/core/components/issues/issue-layouts/empty-states/cycle.tsx index 14d0e14f7ff..e6d143f3432 100644 --- a/apps/web/core/components/issues/issue-layouts/empty-states/cycle.tsx +++ b/apps/web/core/components/issues/issue-layouts/empty-states/cycle.tsx @@ -9,7 +9,7 @@ import { isEmpty } from "lodash-es"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // plane imports -import { EUserPermissionsLevel, WORK_ITEM_TRACKER_ELEMENTS } from "@plane/constants"; +import { EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { EmptyStateDetailed } from "@plane/propel/empty-state"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; @@ -116,14 +116,12 @@ export const CycleEmptyState = observer(function CycleEmptyState() { }, disabled: !canPerformEmptyStateActions, variant: "primary", - "data-ph-element": WORK_ITEM_TRACKER_ELEMENTS.EMPTY_STATE_ADD_BUTTON.CYCLE, }, { label: t("project_empty_state.cycle_work_items.cta_secondary"), onClick: () => setCycleIssuesListModal(true), disabled: !canPerformEmptyStateActions, variant: "secondary", - "data-ph-element": WORK_ITEM_TRACKER_ELEMENTS.EMPTY_STATE_ADD_BUTTON.CYCLE, }, ]} /> diff --git a/apps/web/core/components/issues/issue-layouts/roots/all-issue-layout-root.tsx b/apps/web/core/components/issues/issue-layouts/roots/all-issue-layout-root.tsx index a7bad0857bb..a8659b6afec 100644 --- a/apps/web/core/components/issues/issue-layouts/roots/all-issue-layout-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/roots/all-issue-layout-root.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import { useParams, useSearchParams } from "next/navigation"; import useSWR from "swr"; // plane imports -import { GLOBAL_VIEW_TRACKER_ELEMENTS, ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants"; +import { ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants"; import { EmptyStateDetailed } from "@plane/propel/empty-state"; import type { EIssueLayoutTypes } from "@plane/types"; import { EIssuesStoreType, STATIC_VIEW_TYPES } from "@plane/types"; @@ -148,14 +148,7 @@ export const AllIssueLayoutRoot = observer(function AllIssueLayoutRoot(props: Pr {({ filter: globalWorkItemsFilter }) => (
- {globalWorkItemsFilter && ( - - )} + {globalWorkItemsFilter && } )} - {cycleWorkItemsFilter && ( - - )} + {cycleWorkItemsFilter && }
diff --git a/apps/web/core/components/issues/issue-layouts/roots/module-layout-root.tsx b/apps/web/core/components/issues/issue-layouts/roots/module-layout-root.tsx index 811cb02369d..a167c46c685 100644 --- a/apps/web/core/components/issues/issue-layouts/roots/module-layout-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/roots/module-layout-root.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import useSWR from "swr"; // plane imports -import { ISSUE_DISPLAY_FILTERS_BY_PAGE, PROJECT_VIEW_TRACKER_ELEMENTS } from "@plane/constants"; +import { ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants"; import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types"; import { Row, ERowVariant } from "@plane/ui"; // hooks @@ -81,14 +81,7 @@ export const ModuleLayoutRoot = observer(function ModuleLayoutRoot() { > {({ filter: moduleWorkItemsFilter }) => (
- {moduleWorkItemsFilter && ( - - )} + {moduleWorkItemsFilter && } diff --git a/apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx b/apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx index 79696b807e0..4655c0464b7 100644 --- a/apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx @@ -8,7 +8,7 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import useSWR from "swr"; // plane constants -import { ISSUE_DISPLAY_FILTERS_BY_PAGE, PROJECT_VIEW_TRACKER_ELEMENTS } from "@plane/constants"; +import { ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants"; import { EIssueLayoutTypes, EIssuesStoreType } from "@plane/types"; import { Spinner } from "@plane/ui"; // components @@ -78,14 +78,7 @@ export const ProjectLayoutRoot = observer(function ProjectLayoutRoot() { > {({ filter: projectWorkItemsFilter }) => (
- {projectWorkItemsFilter && ( - - )} + {projectWorkItemsFilter && }
{/* mutation loader */} {issues?.getIssueLoader() === "mutation" && ( diff --git a/apps/web/core/components/issues/issue-layouts/roots/project-view-layout-root.tsx b/apps/web/core/components/issues/issue-layouts/roots/project-view-layout-root.tsx index 3d01bd899dc..45358e1978c 100644 --- a/apps/web/core/components/issues/issue-layouts/roots/project-view-layout-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/roots/project-view-layout-root.tsx @@ -9,7 +9,7 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import useSWR from "swr"; // plane constants -import { ISSUE_DISPLAY_FILTERS_BY_PAGE, PROJECT_VIEW_TRACKER_ELEMENTS } from "@plane/constants"; +import { ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants"; import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types"; // hooks import { ProjectLevelWorkItemFiltersHOC } from "@/components/work-item-filters/filters-hoc/project-level"; @@ -101,14 +101,7 @@ export const ProjectViewLayoutRoot = observer(function ProjectViewLayoutRoot() { > {({ filter: projectViewWorkItemsFilter }) => (
- {projectViewWorkItemsFilter && ( - - )} + {projectViewWorkItemsFilter && }
diff --git a/apps/web/core/components/labels/label-block/label-item-block.tsx b/apps/web/core/components/labels/label-block/label-item-block.tsx index 7f8bc075eec..00298ebe310 100644 --- a/apps/web/core/components/labels/label-block/label-item-block.tsx +++ b/apps/web/core/components/labels/label-block/label-item-block.tsx @@ -8,7 +8,6 @@ import type { MutableRefObject } from "react"; import { useRef, useState } from "react"; import type { LucideIcon } from "lucide-react"; // plane helpers -import { PROJECT_SETTINGS_TRACKER_ELEMENTS } from "@plane/constants"; import { useOutsideClickDetector } from "@plane/hooks"; import type { ISvgIcons } from "@plane/propel/icons"; import { CloseIcon } from "@plane/propel/icons"; @@ -101,7 +100,6 @@ export function LabelItemBlock(props: ILabelItemBlock) { onClick={() => { handleLabelDelete(label); }} - data-ph-element={PROJECT_SETTINGS_TRACKER_ELEMENTS.LABELS_DELETE_BUTTON} > diff --git a/apps/web/core/components/modules/links/list-item.tsx b/apps/web/core/components/modules/links/list-item.tsx index 549ca3ea4fe..6fd3978ed9a 100644 --- a/apps/web/core/components/modules/links/list-item.tsx +++ b/apps/web/core/components/modules/links/list-item.tsx @@ -6,7 +6,6 @@ import { observer } from "mobx-react"; -import { MODULE_TRACKER_ELEMENTS } from "@plane/constants"; import { CopyIcon, EditIcon, TrashIcon } from "@plane/propel/icons"; // plane types import { TOAST_TYPE, setToast } from "@plane/propel/toast"; @@ -67,7 +66,6 @@ export const ModulesLinksListItem = observer(function ModulesLinksListItem(props
@@ -126,7 +122,6 @@ export const GroupItem = observer(function GroupItem(props: TGroupItem) { groupKey={groupKey} handleClose={() => setCreateState(false)} createStateCallback={stateOperationsCallbacks.createState} - shouldTrackEvents={shouldTrackEvents} />
)} diff --git a/apps/web/core/components/project-states/group-list.tsx b/apps/web/core/components/project-states/group-list.tsx index eec413d79bf..12bb1cac47a 100644 --- a/apps/web/core/components/project-states/group-list.tsx +++ b/apps/web/core/components/project-states/group-list.tsx @@ -16,7 +16,6 @@ type TGroupList = { groupedStates: Record; stateOperationsCallbacks: TStateOperationsCallbacks; isEditable: boolean; - shouldTrackEvents: boolean; groupListClassName?: string; groupItemClassName?: string; stateItemClassName?: string; @@ -27,7 +26,6 @@ export const GroupList = observer(function GroupList(props: TGroupList) { groupedStates, stateOperationsCallbacks, isEditable, - shouldTrackEvents, groupListClassName, groupItemClassName, stateItemClassName, @@ -72,7 +70,6 @@ export const GroupList = observer(function GroupList(props: TGroupList) { groupsExpanded={groupsExpanded} stateOperationsCallbacks={stateOperationsCallbacks} isEditable={isEditable} - shouldTrackEvents={shouldTrackEvents} handleGroupCollapse={handleGroupCollapse} handleExpand={handleExpand} groupItemClassName={groupItemClassName} diff --git a/apps/web/core/components/project-states/options/delete.tsx b/apps/web/core/components/project-states/options/delete.tsx index 65f4b4125c8..8549f86b1a2 100644 --- a/apps/web/core/components/project-states/options/delete.tsx +++ b/apps/web/core/components/project-states/options/delete.tsx @@ -21,7 +21,6 @@ type TStateDelete = { totalStates: number; state: IState; deleteStateCallback: TStateOperationsCallbacks["deleteState"]; - shouldTrackEvents?: boolean; }; export const StateDelete = observer(function StateDelete(props: TStateDelete) { diff --git a/apps/web/core/components/project-states/root.tsx b/apps/web/core/components/project-states/root.tsx index 20e0dd393d9..5bbb2988a84 100644 --- a/apps/web/core/components/project-states/root.tsx +++ b/apps/web/core/components/project-states/root.tsx @@ -71,7 +71,6 @@ export const ProjectStateRoot = observer(function ProjectStateRoot(props: TProje groupedStates={groupedProjectStates} stateOperationsCallbacks={stateOperationsCallbacks} isEditable={isEditable} - shouldTrackEvents /> ); }); diff --git a/apps/web/core/components/project-states/state-item-title.tsx b/apps/web/core/components/project-states/state-item-title.tsx index b3fce44d710..be0ae5fb044 100644 --- a/apps/web/core/components/project-states/state-item-title.tsx +++ b/apps/web/core/components/project-states/state-item-title.tsx @@ -7,7 +7,7 @@ import type { SetStateAction } from "react"; import { observer } from "mobx-react"; import { GripVertical } from "lucide-react"; -import { EIconSize, STATE_TRACKER_ELEMENTS } from "@plane/constants"; +import { EIconSize } from "@plane/constants"; // plane imports import { EditIcon, StateGroupIcon } from "@plane/propel/icons"; import type { IState, TStateOperationsCallbacks } from "@plane/types"; @@ -25,7 +25,6 @@ type TBaseStateItemTitleProps = { type TEnabledStateItemTitleProps = TBaseStateItemTitleProps & { disabled: false; stateOperationsCallbacks: Pick; - shouldTrackEvents: boolean; }; type TDisabledStateItemTitleProps = TBaseStateItemTitleProps & { @@ -76,7 +75,6 @@ export const StateItemTitle = observer(function StateItemTitle(props: TStateItem @@ -84,7 +82,6 @@ export const StateItemTitle = observer(function StateItemTitle(props: TStateItem totalStates={stateCount} state={state} deleteStateCallback={props.stateOperationsCallbacks.deleteState} - shouldTrackEvents={props.shouldTrackEvents} />
diff --git a/apps/web/core/components/project-states/state-item.tsx b/apps/web/core/components/project-states/state-item.tsx index 9caeef1f862..fa0fb15a3d7 100644 --- a/apps/web/core/components/project-states/state-item.tsx +++ b/apps/web/core/components/project-states/state-item.tsx @@ -23,7 +23,6 @@ type TStateItem = { totalStates: number; state: IState; stateOperationsCallbacks: TStateOperationsCallbacks; - shouldTrackEvents: boolean; disabled?: boolean; stateItemClassName?: string; }; @@ -35,7 +34,6 @@ export const StateItem = observer(function StateItem(props: TStateItem) { totalStates, state, stateOperationsCallbacks, - shouldTrackEvents, disabled = false, stateItemClassName, } = props; @@ -123,7 +121,6 @@ export const StateItem = observer(function StateItem(props: TStateItem) { setUpdateStateModal(false)} /> ); @@ -151,7 +148,6 @@ export const StateItem = observer(function StateItem(props: TStateItem) { markStateAsDefault: stateOperationsCallbacks.markStateAsDefault, deleteState: stateOperationsCallbacks.deleteState, }} - shouldTrackEvents={shouldTrackEvents} /> )}
diff --git a/apps/web/core/components/project-states/state-list.tsx b/apps/web/core/components/project-states/state-list.tsx index 0035b5d2968..9ce95941409 100644 --- a/apps/web/core/components/project-states/state-list.tsx +++ b/apps/web/core/components/project-states/state-list.tsx @@ -14,7 +14,6 @@ type TStateList = { groupedStates: Record; states: IState[]; stateOperationsCallbacks: TStateOperationsCallbacks; - shouldTrackEvents: boolean; disabled?: boolean; stateItemClassName?: string; }; @@ -25,7 +24,6 @@ export const StateList = observer(function StateList(props: TStateList) { groupedStates, states, stateOperationsCallbacks, - shouldTrackEvents, disabled = false, stateItemClassName, } = props; @@ -41,7 +39,6 @@ export const StateList = observer(function StateList(props: TStateList) { state={state} disabled={disabled} stateOperationsCallbacks={stateOperationsCallbacks} - shouldTrackEvents={shouldTrackEvents} stateItemClassName={stateItemClassName} /> ))} diff --git a/apps/web/core/components/project/header.tsx b/apps/web/core/components/project/header.tsx index d5b08d72e70..e554ab2d199 100644 --- a/apps/web/core/components/project/header.tsx +++ b/apps/web/core/components/project/header.tsx @@ -7,7 +7,7 @@ import { observer } from "mobx-react"; import { usePathname } from "next/navigation"; // i18n -import { EUserPermissions, EUserPermissionsLevel, PROJECT_TRACKER_ELEMENTS } from "@plane/constants"; +import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // ui import { Button } from "@plane/propel/button"; @@ -65,7 +65,6 @@ export const ProjectsBaseHeader = observer(function ProjectsBaseHeader() { onClick={() => { toggleCreateProjectModal(true); }} - data-ph-element={PROJECT_TRACKER_ELEMENTS.CREATE_HEADER_BUTTON} className="items-center gap-1" > {t("workspace_projects.create.label")} diff --git a/apps/web/core/components/project/member-list.tsx b/apps/web/core/components/project/member-list.tsx index 3c72ef57f7e..e5d2122110c 100644 --- a/apps/web/core/components/project/member-list.tsx +++ b/apps/web/core/components/project/member-list.tsx @@ -7,7 +7,7 @@ import { useState } from "react"; import { observer } from "mobx-react"; // plane imports -import { EUserPermissions, EUserPermissionsLevel, MEMBER_TRACKER_ELEMENTS } from "@plane/constants"; +import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/propel/button"; import { SearchIcon } from "@plane/propel/icons"; @@ -105,7 +105,6 @@ export const ProjectMemberList = observer(function ProjectMemberList(props: TPro onClick={() => { setInviteModal(true); }} - data-ph-element={MEMBER_TRACKER_ELEMENTS.HEADER_ADD_BUTTON} > {t("add_member")} diff --git a/apps/web/core/components/project/settings/control-section.tsx b/apps/web/core/components/project/settings/control-section.tsx index c7764ec7147..cd30c50ced3 100644 --- a/apps/web/core/components/project/settings/control-section.tsx +++ b/apps/web/core/components/project/settings/control-section.tsx @@ -8,7 +8,6 @@ import { useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "react-router"; // plane imports -import { PROJECT_TRACKER_ELEMENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/propel/button"; // components @@ -76,7 +75,6 @@ export const GeneralProjectSettingsControlSection = observer(function GeneralPro diff --git a/apps/web/core/components/project/settings/helper.tsx b/apps/web/core/components/project/settings/helper.tsx index 959411d29a3..858debea269 100644 --- a/apps/web/core/components/project/settings/helper.tsx +++ b/apps/web/core/components/project/settings/helper.tsx @@ -5,7 +5,6 @@ */ import Link from "next/link"; -import { PROJECT_TRACKER_ELEMENTS } from "@plane/constants"; import { ChevronRightIcon } from "@plane/propel/icons"; import { EPillVariant, Pill, EPillSize } from "@plane/propel/pill"; import { ToggleSwitch } from "@plane/ui"; @@ -41,7 +40,6 @@ export function ProjectFeatureToggle(props: Props) { onChange={() => handleSubmit(featureItem?.key, featureItem?.property)} disabled={disabled} size="sm" - data-ph-element={PROJECT_TRACKER_ELEMENTS.TOGGLE_FEATURE} /> ); } diff --git a/apps/web/core/components/project/settings/member-columns.tsx b/apps/web/core/components/project/settings/member-columns.tsx index 7806e64b890..8a99a73809d 100644 --- a/apps/web/core/components/project/settings/member-columns.tsx +++ b/apps/web/core/components/project/settings/member-columns.tsx @@ -10,7 +10,7 @@ import { Controller, useForm } from "react-hook-form"; import { CircleMinus } from "lucide-react"; import { Disclosure } from "@headlessui/react"; // plane imports -import { ROLE, EUserPermissions, MEMBER_TRACKER_ELEMENTS } from "@plane/constants"; +import { ROLE, EUserPermissions } from "@plane/constants"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import type { EUserProjectRoles, IUser, IWorkspaceMember, TProjectMembership } from "@plane/types"; import { CustomMenu, CustomSelect } from "@plane/ui"; @@ -78,7 +78,6 @@ export function NameColumn(props: NameProps) {
setRemoveMemberModal(rowData)} > diff --git a/apps/web/core/components/rich-filters/filters-row.tsx b/apps/web/core/components/rich-filters/filters-row.tsx index 6a63603a41b..a44f8b074a1 100644 --- a/apps/web/core/components/rich-filters/filters-row.tsx +++ b/apps/web/core/components/rich-filters/filters-row.tsx @@ -23,23 +23,12 @@ export type TFiltersRowProps; variant?: "modal" | "header"; - trackerElements?: { - clearFilter?: string; - saveView?: string; - updateView?: string; - }; }; export const FiltersRow = observer(function FiltersRow( props: TFiltersRowProps ) { - const { - buttonConfig, - disabledAllOperations: disabledAllOperationsProp = false, - filter, - variant = "header", - trackerElements, - } = props; + const { buttonConfig, disabledAllOperations: disabledAllOperationsProp = false, filter, variant = "header" } = props; // states const [isUpdating, setIsUpdating] = useState(false); // derived values @@ -90,22 +79,12 @@ export const FiltersRow = observer(function FiltersRow - - @@ -116,7 +95,6 @@ export const FiltersRow = observer(function FiltersRow {isUpdating ? "Confirming" : (filter.updateViewOptions?.label ?? "Update view")} diff --git a/apps/web/core/components/web-hooks/form/delete-section.tsx b/apps/web/core/components/web-hooks/form/delete-section.tsx index 55225ae2404..ba0e0bb3196 100644 --- a/apps/web/core/components/web-hooks/form/delete-section.tsx +++ b/apps/web/core/components/web-hooks/form/delete-section.tsx @@ -5,7 +5,6 @@ */ import { Disclosure, Transition } from "@headlessui/react"; -import { WORKSPACE_SETTINGS_TRACKER_ELEMENTS } from "@plane/constants"; import { Button } from "@plane/propel/button"; import { ChevronDownIcon, ChevronUpIcon } from "@plane/propel/icons"; @@ -45,7 +44,6 @@ export function WebhookDeleteSection(props: Props) { variant="error-fill" size="lg" onClick={openDeleteModal} - data-ph-element={WORKSPACE_SETTINGS_TRACKER_ELEMENTS.WEBHOOK_DELETE_BUTTON} > Delete webhook diff --git a/apps/web/core/components/web-hooks/form/form.tsx b/apps/web/core/components/web-hooks/form/form.tsx index 61946a3e917..74d3961468d 100644 --- a/apps/web/core/components/web-hooks/form/form.tsx +++ b/apps/web/core/components/web-hooks/form/form.tsx @@ -7,7 +7,6 @@ import React, { useEffect, useState } from "react"; import { observer } from "mobx-react"; import { Controller, useForm } from "react-hook-form"; -import { WORKSPACE_SETTINGS_TRACKER_ELEMENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/propel/button"; import type { IWebhook, TWebhookEventTypes } from "@plane/types"; @@ -102,7 +101,6 @@ export const WebhookForm = observer(function WebhookForm(props: Props) { size="lg" type="submit" loading={isSubmitting} - data-ph-element={WORKSPACE_SETTINGS_TRACKER_ELEMENTS.WEBHOOK_UPDATE_BUTTON} > {isSubmitting ? t("updating") : t("update")} diff --git a/apps/web/core/components/workspace/delete-workspace-section.tsx b/apps/web/core/components/workspace/delete-workspace-section.tsx index e66abcf4177..6a6f845d077 100644 --- a/apps/web/core/components/workspace/delete-workspace-section.tsx +++ b/apps/web/core/components/workspace/delete-workspace-section.tsx @@ -7,7 +7,6 @@ import { useState } from "react"; import { observer } from "mobx-react"; // plane imports -import { WORKSPACE_TRACKER_ELEMENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/propel/button"; import type { IWorkspace } from "@plane/types"; @@ -38,11 +37,7 @@ export const DeleteWorkspaceSection = observer(function DeleteWorkspaceSection(p title={t("workspace_settings.settings.general.delete_workspace")} description={t("workspace_settings.settings.general.delete_workspace_description")} control={ - } diff --git a/apps/web/core/components/workspace/settings/member-columns.tsx b/apps/web/core/components/workspace/settings/member-columns.tsx index b6cc9c0c986..1ad49f74710 100644 --- a/apps/web/core/components/workspace/settings/member-columns.tsx +++ b/apps/web/core/components/workspace/settings/member-columns.tsx @@ -10,7 +10,7 @@ import { Controller, useForm } from "react-hook-form"; import { Disclosure } from "@headlessui/react"; // plane imports -import { ROLE, EUserPermissions, EUserPermissionsLevel, MEMBER_TRACKER_ELEMENTS } from "@plane/constants"; +import { ROLE, EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { TrashIcon, SuspendedUserIcon } from "@plane/propel/icons"; import { Pill, EPillVariant, EPillSize } from "@plane/propel/pill"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; @@ -98,7 +98,6 @@ export function NameColumn(props: NameProps) { setRemoveMemberModal(rowData); } }} - data-ph-element={MEMBER_TRACKER_ELEMENTS.WORKSPACE_MEMBER_TABLE_CONTEXT_MENU} > {id === currentUser?.id ? "Leave " : "Remove "}
diff --git a/apps/web/core/components/workspace/sidebar/projects-list-item.tsx b/apps/web/core/components/workspace/sidebar/projects-list-item.tsx index b0b5a1afec6..23201d42c22 100644 --- a/apps/web/core/components/workspace/sidebar/projects-list-item.tsx +++ b/apps/web/core/components/workspace/sidebar/projects-list-item.tsx @@ -17,7 +17,7 @@ import scrollIntoView from "smooth-scroll-into-view-if-needed"; import { Settings, Share2, LogOut, MoreHorizontal } from "lucide-react"; import { Disclosure, Transition } from "@headlessui/react"; // plane imports -import { EUserPermissions, EUserPermissionsLevel, MEMBER_TRACKER_ELEMENTS } from "@plane/constants"; +import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useOutsideClickDetector } from "@plane/hooks"; import { useTranslation } from "@plane/i18n"; import { Logo } from "@plane/propel/emoji-icon-picker"; @@ -434,10 +434,7 @@ export const SidebarProjectsListItem = observer(function SidebarProjectsListItem
{/* leave project */} {!isAuthorized && ( - +
{t("leave_project")} diff --git a/apps/web/core/components/workspace/sidebar/projects-list.tsx b/apps/web/core/components/workspace/sidebar/projects-list.tsx index 6301915bd54..333adea153e 100644 --- a/apps/web/core/components/workspace/sidebar/projects-list.tsx +++ b/apps/web/core/components/workspace/sidebar/projects-list.tsx @@ -12,7 +12,7 @@ import { useParams, usePathname } from "next/navigation"; import { Ellipsis } from "lucide-react"; import { Disclosure, Transition } from "@headlessui/react"; // plane imports -import { EUserPermissions, EUserPermissionsLevel, PROJECT_TRACKER_ELEMENTS } from "@plane/constants"; +import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { PlusIcon, ChevronRightIcon } from "@plane/propel/icons"; import { IconButton } from "@plane/propel/icon-button"; @@ -195,7 +195,6 @@ export const SidebarProjectsList = observer(function SidebarProjectsList() { onClick={() => { setIsProjectModalOpen(true); }} - data-ph-element={PROJECT_TRACKER_ELEMENTS.SIDEBAR_CREATE_PROJECT_TOOLTIP} className="hidden text-placeholder group-hover:inline-flex" aria-label={t("aria_labels.projects_sidebar.create_new_project")} /> @@ -277,7 +276,6 @@ export const SidebarProjectsList = observer(function SidebarProjectsList() { {isAuthorizedUser && joinedProjects?.length === 0 && (
diff --git a/packages/constants/src/event-tracker/core.ts b/packages/constants/src/event-tracker/core.ts deleted file mode 100644 index 7a262088abf..00000000000 --- a/packages/constants/src/event-tracker/core.ts +++ /dev/null @@ -1,508 +0,0 @@ -/** - * Copyright (c) 2023-present Plane Software, Inc. and contributors - * SPDX-License-Identifier: AGPL-3.0-only - * See the LICENSE file for details. - */ - -import type { EProductSubscriptionEnum } from "@plane/types"; - -/** - * =========================================================================== - * Event Groups - * =========================================================================== - */ -export const GROUP_WORKSPACE_TRACKER_EVENT = "workspace_metrics"; -export const GITHUB_REDIRECTED_TRACKER_EVENT = "github_redirected"; -export const HEADER_GITHUB_ICON = "header_github_icon"; - -/** - * =========================================================================== - * Command palette tracker - * =========================================================================== - */ -export const COMMAND_PALETTE_TRACKER_ELEMENTS = { - COMMAND_PALETTE_SHORTCUT_KEY: "command_palette_shortcut_key", -}; - -/** - * =========================================================================== - * Workspace Events and Elements - * =========================================================================== - */ -export const WORKSPACE_TRACKER_EVENTS = { - create: "workspace_created", - update: "workspace_updated", - delete: "workspace_deleted", -}; - -export const WORKSPACE_TRACKER_ELEMENTS = { - DELETE_WORKSPACE_BUTTON: "delete_workspace_button", - ONBOARDING_CREATE_WORKSPACE_BUTTON: "onboarding_create_workspace_button", - CREATE_WORKSPACE_BUTTON: "create_workspace_button", - UPDATE_WORKSPACE_BUTTON: "update_workspace_button", -}; - -/** - * =========================================================================== - * Project Events and Elements - * =========================================================================== - */ -export const PROJECT_TRACKER_EVENTS = { - create: "project_created", - update: "project_updated", - delete: "project_deleted", - feature_toggled: "feature_toggled", -}; - -export const PROJECT_TRACKER_ELEMENTS = { - EXTENDED_SIDEBAR_ADD_BUTTON: "extended_sidebar_add_project_button", - SIDEBAR_CREATE_PROJECT_BUTTON: "sidebar_create_project_button", - SIDEBAR_CREATE_PROJECT_TOOLTIP: "sidebar_create_project_tooltip", - COMMAND_PALETTE_CREATE_BUTTON: "command_palette_create_project_button", - COMMAND_PALETTE_SHORTCUT_CREATE_BUTTON: "command_palette_shortcut_create_project_button", - EMPTY_STATE_CREATE_PROJECT_BUTTON: "empty_state_create_project_button", - CREATE_HEADER_BUTTON: "create_project_header_button", - 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", -}; - -/** - * =========================================================================== - * Cycle Events and Elements - * =========================================================================== - */ -export const CYCLE_TRACKER_EVENTS = { - create: "cycle_created", - update: "cycle_updated", - delete: "cycle_deleted", - favorite: "cycle_favorited", - unfavorite: "cycle_unfavorited", - archive: "cycle_archived", - restore: "cycle_restored", -}; - -export const CYCLE_TRACKER_ELEMENTS = { - RIGHT_HEADER_ADD_BUTTON: "right_header_add_cycle_button", - EMPTY_STATE_ADD_BUTTON: "empty_state_add_cycle_button", - COMMAND_PALETTE_ADD_ITEM: "command_palette_add_cycle_item", - RIGHT_SIDEBAR: "cycle_right_sidebar", - QUICK_ACTIONS: "cycle_quick_actions", - CONTEXT_MENU: "cycle_context_menu", - LIST_ITEM: "cycle_list_item", -} as const; - -/** - * =========================================================================== - * Module Events and Elements - * =========================================================================== - */ -export const MODULE_TRACKER_EVENTS = { - create: "module_created", - update: "module_updated", - delete: "module_deleted", - favorite: "module_favorited", - unfavorite: "module_unfavorited", - archive: "module_archived", - restore: "module_restored", - link: { - create: "module_link_created", - update: "module_link_updated", - delete: "module_link_deleted", - }, -}; - -export const MODULE_TRACKER_ELEMENTS = { - RIGHT_HEADER_ADD_BUTTON: "right_header_add_module_button", - EMPTY_STATE_ADD_BUTTON: "empty_state_add_module_button", - COMMAND_PALETTE_ADD_ITEM: "command_palette_add_module_item", - RIGHT_SIDEBAR: "module_right_sidebar", - QUICK_ACTIONS: "module_quick_actions", - CONTEXT_MENU: "module_context_menu", - LIST_ITEM: "module_list_item", - CARD_ITEM: "module_card_item", -} as const; - -/** - * =========================================================================== - * Work Item Events and 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", - restore: "work_item_restored", - attachment: { - add: "work_item_attachment_added", - remove: "work_item_attachment_removed", - }, - sub_issue: { - 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 = { - HEADER_ADD_BUTTON: { - WORK_ITEMS: "work_items_header_add_work_item_button", - PROJECT_VIEW: "project_view_header_add_work_item_button", - CYCLE: "cycle_header_add_work_item_button", - MODULE: "module_header_add_work_item_button", - }, - 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", - CYCLE: "cycle_empty_state_add_work_item_button", - MODULE: "module_empty_state_add_work_item_button", - GLOBAL_VIEW: "global_view_empty_state_add_work_item_button", - }, - QUICK_ACTIONS: { - WORK_ITEMS: "work_items_quick_actions", - PROJECT_VIEW: "project_view_work_items_quick_actions", - CYCLE: "cycle_work_items_quick_actions", - MODULE: "module_work_items_quick_actions", - GLOBAL_VIEW: "global_view_work_items_quick_actions", - ARCHIVED: "archived_work_items_quick_actions", - DRAFT: "draft_work_items_quick_actions", - }, - CONTEXT_MENU: { - WORK_ITEMS: "work_items_context_menu", - PROJECT_VIEW: "project_view_context_menu", - CYCLE: "cycle_context_menu", - MODULE: "module_context_menu", - GLOBAL_VIEW: "global_view_context_menu", - ARCHIVED: "archived_context_menu", - DRAFT: "draft_context_menu", - }, -} as const; - -/** - * =========================================================================== - * State Events and Elements - * =========================================================================== - */ -export const STATE_TRACKER_EVENTS = { - create: "state_created", - update: "state_updated", - delete: "state_deleted", -}; -export const STATE_TRACKER_ELEMENTS = { - STATE_GROUP_ADD_BUTTON: "state_group_add_button", - STATE_LIST_DELETE_BUTTON: "state_list_delete_button", - STATE_LIST_EDIT_BUTTON: "state_list_edit_button", -}; - -/** - * =========================================================================== - * Project Page Events and Elements - * =========================================================================== - */ -export const PROJECT_PAGE_TRACKER_EVENTS = { - create: "project_page_created", - update: "project_page_updated", - delete: "project_page_deleted", - archive: "project_page_archived", - restore: "project_page_restored", - lock: "project_page_locked", - unlock: "project_page_unlocked", - access_update: "project_page_access_updated", - duplicate: "project_page_duplicated", - favorite: "project_page_favorited", - unfavorite: "project_page_unfavorited", - move: "project_page_moved", -}; -export const PROJECT_PAGE_TRACKER_ELEMENTS = { - COMMAND_PALETTE_SHORTCUT_CREATE_BUTTON: "command_palette_shortcut_create_page_button", - EMPTY_STATE_CREATE_BUTTON: "empty_state_create_page_button", - COMMAND_PALETTE_CREATE_BUTTON: "command_palette_create_page_button", - CONTEXT_MENU: "page_context_menu", - QUICK_ACTIONS: "page_quick_actions", - LIST_ITEM: "page_list_item", - FAVORITE_BUTTON: "page_favorite_button", - ARCHIVE_BUTTON: "page_archive_button", - LOCK_BUTTON: "page_lock_button", - ACCESS_TOGGLE: "page_access_toggle", - DUPLICATE_BUTTON: "page_duplicate_button", -} as const; - -/** - * =========================================================================== - * Member Events and Elements - * =========================================================================== - */ -export const MEMBER_TRACKER_EVENTS = { - invite: "member_invited", - accept: "member_accepted", - project: { - add: "project_member_added", - leave: "project_member_left", - }, - workspace: { - leave: "workspace_member_left", - }, -}; -export const MEMBER_TRACKER_ELEMENTS = { - HEADER_ADD_BUTTON: "header_add_member_button", - ACCEPT_INVITATION_BUTTON: "accept_invitation_button", - ONBOARDING_JOIN_WORKSPACE: "workspace_join_continue_to_workspace_button", - ONBOARDING_INVITE_MEMBER: "invite_member_continue_button", - SIDEBAR_PROJECT_QUICK_ACTIONS: "sidebar_project_quick_actions", - PROJECT_MEMBER_TABLE_CONTEXT_MENU: "project_member_table_context_menu", - WORKSPACE_MEMBER_TABLE_CONTEXT_MENU: "workspace_member_table_context_menu", - WORKSPACE_INVITATIONS_LIST_CONTEXT_MENU: "workspace_invitations_list_context_menu", -} as const; - -/** - * =========================================================================== - * Auth Events and Elements - * =========================================================================== - */ -export const AUTH_TRACKER_EVENTS = { - code_verify: "code_verified", - sign_up_with_password: "sign_up_with_password", - sign_in_with_password: "sign_in_with_password", - forgot_password: "forgot_password_clicked", - new_code_requested: "new_code_requested", - password_created: "password_created", -}; - -export const AUTH_TRACKER_ELEMENTS = { - NAVIGATE_TO_SIGN_UP: "navigate_to_sign_up", - FORGOT_PASSWORD_FROM_SIGNIN: "forgot_password_from_signin", - SIGNUP_FROM_FORGOT_PASSWORD: "signup_from_forgot_password", - SIGN_IN_FROM_SIGNUP: "sign_in_from_signup", - SIGN_IN_WITH_UNIQUE_CODE: "sign_in_with_unique_code", - REQUEST_NEW_CODE: "request_new_code", - VERIFY_CODE: "verify_code", - SET_PASSWORD_FORM: "set_password_form", -}; - -/** - * =========================================================================== - * Global View Events and Elements - * =========================================================================== - */ -export const GLOBAL_VIEW_TRACKER_EVENTS = { - create: "global_view_created", - update: "global_view_updated", - delete: "global_view_deleted", - open: "global_view_opened", -}; - -export const GLOBAL_VIEW_TRACKER_ELEMENTS = { - RIGHT_HEADER_ADD_BUTTON: "global_view_right_header_add_button", - HEADER_SAVE_VIEW_BUTTON: "global_view_header_save_view_button", - QUICK_ACTIONS: "global_view_quick_actions", - LIST_ITEM: "global_view_list_item", -}; - -/** - * =========================================================================== - * Project View Events and Elements - * =========================================================================== - */ -export const PROJECT_VIEW_TRACKER_EVENTS = { - create: "project_view_created", - update: "project_view_updated", - delete: "project_view_deleted", -}; - -export const PROJECT_VIEW_TRACKER_ELEMENTS = { - RIGHT_HEADER_ADD_BUTTON: "project_view_right_header_add_button", - COMMAND_PALETTE_ADD_ITEM: "command_palette_add_project_view_item", - EMPTY_STATE_CREATE_BUTTON: "project_view_empty_state_create_button", - HEADER_SAVE_VIEW_BUTTON: "project_view_header_save_view_button", - PROJECT_HEADER_SAVE_AS_VIEW_BUTTON: "project_view_header_save_as_view_button", - CYCLE_HEADER_SAVE_AS_VIEW_BUTTON: "cycle_header_save_as_view_button", - MODULE_HEADER_SAVE_AS_VIEW_BUTTON: "module_header_save_as_view_button", - QUICK_ACTIONS: "project_view_quick_actions", - LIST_ITEM_CONTEXT_MENU: "project_view_list_item_context_menu", -}; - -/** - * =========================================================================== - * Product Tour Events and Elements - * =========================================================================== - */ -export const PRODUCT_TOUR_TRACKER_EVENTS = { - complete: "product_tour_completed", -}; - -export const PRODUCT_TOUR_TRACKER_ELEMENTS = { - START_BUTTON: "product_tour_start_button", - SKIP_BUTTON: "product_tour_skip_button", - CREATE_PROJECT_BUTTON: "product_tour_create_project_button", -}; - -/** - * =========================================================================== - * Notification Events and Elements - * =========================================================================== - */ -export const NOTIFICATION_TRACKER_EVENTS = { - archive: "notification_archived", - unarchive: "notification_unarchived", - mark_read: "notification_marked_read", - mark_unread: "notification_marked_unread", - all_marked_read: "all_notifications_marked_read", -}; - -export const NOTIFICATION_TRACKER_ELEMENTS = { - MARK_ALL_AS_READ_BUTTON: "mark_all_as_read_button", - ARCHIVE_UNARCHIVE_BUTTON: "archive_unarchive_button", - MARK_READ_UNREAD_BUTTON: "mark_read_unread_button", -}; - -/** - * =========================================================================== - * User Events - * =========================================================================== - */ -export const USER_TRACKER_EVENTS = { - add_details: "user_details_added", - onboarding_complete: "user_onboarding_completed", -}; - -export const USER_TRACKER_ELEMENTS = { - PRODUCT_CHANGELOG_MODAL: "product_changelog_modal", - CHANGELOG_REDIRECTED: "changelog_redirected", -}; - -/** - * =========================================================================== - * Onboarding Events and Elements - * =========================================================================== - */ -export const ONBOARDING_TRACKER_ELEMENTS = { - PROFILE_SETUP_FORM: "onboarding_profile_setup_form", - PASSWORD_CREATION_SELECTED: "onboarding_password_creation_selected", - PASSWORD_CREATION_SKIPPED: "onboarding_password_creation_skipped", -}; - -/** - * =========================================================================== - * Sidebar Events - * =========================================================================== - */ -export const SIDEBAR_TRACKER_ELEMENTS = { - USER_MENU_ITEM: "sidenav_user_menu_item", - CREATE_WORK_ITEM_BUTTON: "sidebar_create_work_item_button", -}; - -/** - * =========================================================================== - * Project Settings Events and Elements - * =========================================================================== - */ -export const PROJECT_SETTINGS_TRACKER_ELEMENTS = { - LABELS_EMPTY_STATE_CREATE_BUTTON: "labels_empty_state_create_button", - LABELS_HEADER_CREATE_BUTTON: "labels_header_create_button", - LABELS_CONTEXT_MENU: "labels_context_menu", - LABELS_DELETE_BUTTON: "labels_delete_button", - ESTIMATES_TOGGLE_BUTTON: "estimates_toggle_button", - ESTIMATES_EMPTY_STATE_CREATE_BUTTON: "estimates_empty_state_create_button", - ESTIMATES_LIST_ITEM: "estimates_list_item", - AUTOMATIONS_ARCHIVE_TOGGLE_BUTTON: "automations_archive_toggle_button", - AUTOMATIONS_CLOSE_TOGGLE_BUTTON: "automations_close_toggle_button", -}; - -export const PROJECT_SETTINGS_TRACKER_EVENTS = { - // labels - label_created: "label_created", - label_updated: "label_updated", - label_deleted: "label_deleted", - // estimates - estimate_created: "estimate_created", - estimate_updated: "estimate_updated", - estimate_deleted: "estimate_deleted", - estimates_toggle: "estimates_toggled", - // automations - auto_close_workitems: "auto_close_workitems", - auto_archive_workitems: "auto_archive_workitems", -}; - -/** - * =========================================================================== - * Profile Settings Events and Elements - * =========================================================================== - */ -export const PROFILE_SETTINGS_TRACKER_EVENTS = { - // Account - deactivate_account: "deactivate_account", - update_profile: "update_profile", - // Preferences - first_day_updated: "first_day_updated", - language_updated: "language_updated", - timezone_updated: "timezone_updated", - theme_updated: "theme_updated", - // Notifications - notifications_updated: "notifications_updated", - // PAT - pat_created: "pat_created", - pat_deleted: "pat_deleted", -}; - -export const PROFILE_SETTINGS_TRACKER_ELEMENTS = { - // Account - SAVE_CHANGES_BUTTON: "save_changes_button", - DEACTIVATE_ACCOUNT_BUTTON: "deactivate_account_button", - // Preferences - THEME_DROPDOWN: "preferences_theme_dropdown", - FIRST_DAY_OF_WEEK_DROPDOWN: "preferences_first_day_of_week_dropdown", - LANGUAGE_DROPDOWN: "preferences_language_dropdown", - TIMEZONE_DROPDOWN: "preferences_timezone_dropdown", - // Notifications - PROPERTY_CHANGES_TOGGLE: "notifications_property_changes_toggle", - STATE_CHANGES_TOGGLE: "notifications_state_changes_toggle", - COMMENTS_TOGGLE: "notifications_comments_toggle", - MENTIONS_TOGGLE: "notifications_mentions_toggle", - // PAT - HEADER_ADD_PAT_BUTTON: "header_add_pat_button", - EMPTY_STATE_ADD_PAT_BUTTON: "empty_state_add_pat_button", - LIST_ITEM_DELETE_ICON: "list_item_delete_icon", -}; - -/** - * =========================================================================== - * Workspace Settings Events and Elements - * =========================================================================== - */ -export const WORKSPACE_SETTINGS_TRACKER_EVENTS = { - // Billing - upgrade_plan_redirected: "upgrade_plan_redirected", - // Exports - csv_exported: "csv_exported", - // Webhooks - webhook_created: "webhook_created", - webhook_deleted: "webhook_deleted", - webhook_toggled: "webhook_toggled", - webhook_details_page_toggled: "webhook_details_page_toggled", - webhook_updated: "webhook_updated", -}; - -export const WORKSPACE_SETTINGS_TRACKER_ELEMENTS = { - // Billing - BILLING_UPGRADE_BUTTON: (subscriptionType: EProductSubscriptionEnum) => `billing_upgrade_${subscriptionType}_button`, - BILLING_TALK_TO_SALES_BUTTON: "billing_talk_to_sales_button", - // Exports - EXPORT_BUTTON: "export_button", - // Webhooks - HEADER_ADD_WEBHOOK_BUTTON: "header_add_webhook_button", - EMPTY_STATE_ADD_WEBHOOK_BUTTON: "empty_state_add_webhook_button", - LIST_ITEM_DELETE_BUTTON: "list_item_delete_button", - WEBHOOK_LIST_ITEM_TOGGLE_SWITCH: "webhook_list_item_toggle_switch", - WEBHOOK_DETAILS_PAGE_TOGGLE_SWITCH: "webhook_details_page_toggle_switch", - WEBHOOK_DELETE_BUTTON: "webhook_delete_button", - WEBHOOK_UPDATE_BUTTON: "webhook_update_button", -}; diff --git a/packages/constants/src/event-tracker/index.ts b/packages/constants/src/event-tracker/index.ts deleted file mode 100644 index bcdcb87a16a..00000000000 --- a/packages/constants/src/event-tracker/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) 2023-present Plane Software, Inc. and contributors - * SPDX-License-Identifier: AGPL-3.0-only - * See the LICENSE file for details. - */ - -export * from "./core"; diff --git a/packages/constants/src/index.ts b/packages/constants/src/index.ts index e55a3dbe23d..fe89380d091 100644 --- a/packages/constants/src/index.ts +++ b/packages/constants/src/index.ts @@ -14,7 +14,6 @@ export * from "./dashboard"; export * from "./emoji"; export * from "./endpoints"; export * from "./estimates"; -export * from "./event-tracker"; export * from "./file"; export * from "./fetch-keys"; export * from "./filter"; diff --git a/packages/types/src/instance/base.ts b/packages/types/src/instance/base.ts index a93baef524f..493067c9bdf 100644 --- a/packages/types/src/instance/base.ts +++ b/packages/types/src/instance/base.ts @@ -55,8 +55,6 @@ export interface IInstanceConfig { is_email_password_enabled: boolean; github_app_name: string | undefined; slack_client_id: string | undefined; - posthog_api_key: string | undefined; - posthog_host: string | undefined; has_unsplash_configured: boolean; has_llm_configured: boolean; file_size_limit: number | undefined; diff --git a/turbo.json b/turbo.json index a63e0fdf7c6..7d1e34f80b9 100644 --- a/turbo.json +++ b/turbo.json @@ -14,7 +14,6 @@ "VITE_API_BASE_PATH", "VITE_API_BASE_URL", "VITE_APP_VERSION", - "VITE_ENABLE_SESSION_RECORDER", "VITE_LIVE_BASE_PATH", "VITE_LIVE_BASE_URL", "VITE_SENTRY_DSN", @@ -24,7 +23,6 @@ "VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE", "VITE_SENTRY_SEND_DEFAULT_PII", "VITE_SENTRY_TRACES_SAMPLE_RATE", - "VITE_SESSION_RECORDER_KEY", "VITE_SPACE_BASE_PATH", "VITE_SPACE_BASE_URL", "VITE_SUPPORT_EMAIL", From cb2f67e2c7baa7549331de126c54d5dec0b6fe58 Mon Sep 17 00:00:00 2001 From: Sriram Veeraghanta Date: Tue, 18 Aug 2026 02:17:20 +0530 Subject: [PATCH 2/2] chore: apply oxfmt formatting Collapse JSX elements and import statements that were left multi-line after the tracker props and specifiers were removed. Whitespace only. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01HD7dTidmtWWRRiFv3nmW3s --- .../(detail)/[projectId]/views/(list)/header.tsx | 6 +----- .../(projects)/workspace-views/header.tsx | 12 ++---------- apps/web/core/components/issues/header.tsx | 7 +------ .../core/components/project-states/state-list.tsx | 9 +-------- .../components/project/settings/control-section.tsx | 5 +---- .../components/web-hooks/form/delete-section.tsx | 6 +----- apps/web/core/components/web-hooks/form/form.tsx | 6 +----- 7 files changed, 8 insertions(+), 43 deletions(-) diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx index fa19798e11b..97339cf30de 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx @@ -47,11 +47,7 @@ export const ProjectViewsHeader = observer(function ProjectViewsHeader() {
-
diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx index aaf623b8e63..f4fdddc4ed8 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx @@ -8,11 +8,7 @@ import { useCallback, useMemo, useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // plane imports -import { - EIssueFilterType, - ISSUE_DISPLAY_FILTERS_BY_PAGE, - DEFAULT_GLOBAL_VIEWS_LIST, -} from "@plane/constants"; +import { EIssueFilterType, ISSUE_DISPLAY_FILTERS_BY_PAGE, DEFAULT_GLOBAL_VIEWS_LIST } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/propel/button"; import { ViewsIcon } from "@plane/propel/icons"; @@ -147,11 +143,7 @@ export const GlobalIssuesHeader = observer(function GlobalIssuesHeader() { /> )} -
diff --git a/apps/web/core/components/issues/header.tsx b/apps/web/core/components/issues/header.tsx index 0a83e40888b..b032f11c115 100644 --- a/apps/web/core/components/issues/header.tsx +++ b/apps/web/core/components/issues/header.tsx @@ -9,12 +9,7 @@ import { useParams } from "next/navigation"; // icons import { Circle } from "lucide-react"; // plane imports -import { - EUserPermissions, - EUserPermissionsLevel, - SPACE_BASE_PATH, - SPACE_BASE_URL, -} from "@plane/constants"; +import { EUserPermissions, EUserPermissionsLevel, SPACE_BASE_PATH, SPACE_BASE_URL } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/propel/button"; import { NewTabIcon, WorkItemsIcon } from "@plane/propel/icons"; diff --git a/apps/web/core/components/project-states/state-list.tsx b/apps/web/core/components/project-states/state-list.tsx index 9ce95941409..12bc679e623 100644 --- a/apps/web/core/components/project-states/state-list.tsx +++ b/apps/web/core/components/project-states/state-list.tsx @@ -19,14 +19,7 @@ type TStateList = { }; export const StateList = observer(function StateList(props: TStateList) { - const { - groupKey, - groupedStates, - states, - stateOperationsCallbacks, - disabled = false, - stateItemClassName, - } = props; + const { groupKey, groupedStates, states, stateOperationsCallbacks, disabled = false, stateItemClassName } = props; return ( <> diff --git a/apps/web/core/components/project/settings/control-section.tsx b/apps/web/core/components/project/settings/control-section.tsx index cd30c50ced3..de56790c885 100644 --- a/apps/web/core/components/project/settings/control-section.tsx +++ b/apps/web/core/components/project/settings/control-section.tsx @@ -72,10 +72,7 @@ export const GeneralProjectSettingsControlSection = observer(function GeneralPro title={t("delete")} description="When deleting a project, all of the data and resources within that project will be permanently removed and cannot be recovered." control={ - } diff --git a/apps/web/core/components/web-hooks/form/delete-section.tsx b/apps/web/core/components/web-hooks/form/delete-section.tsx index ba0e0bb3196..4728cd73400 100644 --- a/apps/web/core/components/web-hooks/form/delete-section.tsx +++ b/apps/web/core/components/web-hooks/form/delete-section.tsx @@ -40,11 +40,7 @@ export function WebhookDeleteSection(props: Props) { webhook.
-
diff --git a/apps/web/core/components/web-hooks/form/form.tsx b/apps/web/core/components/web-hooks/form/form.tsx index 74d3961468d..4800931d004 100644 --- a/apps/web/core/components/web-hooks/form/form.tsx +++ b/apps/web/core/components/web-hooks/form/form.tsx @@ -97,11 +97,7 @@ export const WebhookForm = observer(function WebhookForm(props: Props) { {data ? (
-