chore: posthog events improved (#3554)

* chore: events naming convention changed

* chore: track element added for project related events

* chore: track element added for cycle related events

* chore: track element added for module related events

* chore: issue related events updated

* refactor: event tracker store

* refactor: event-tracker store

* fix: posthog changes

---------

Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
This commit is contained in:
Lakhan Baheti 2024-02-05 13:19:07 +05:30 committed by GitHub
parent 7d07afd59c
commit 0165abab3e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
103 changed files with 1385 additions and 596 deletions

View file

@ -3,7 +3,7 @@ import { observer } from "mobx-react-lite";
import { Tab } from "@headlessui/react";
import { useTheme } from "next-themes";
// hooks
import { useApplication, useProject, useUser } from "hooks/store";
import { useApplication, useEventTracker, useProject, useUser } from "hooks/store";
// layouts
import { AppLayout } from "layouts/app-layout";
// components
@ -22,8 +22,8 @@ const AnalyticsPage: NextPageWithLayout = observer(() => {
// store hooks
const {
commandPalette: { toggleCreateProjectModal },
eventTracker: { setTrackElement },
} = useApplication();
const { setTrackElement } = useEventTracker();
const {
membership: { currentWorkspaceRole },
currentUser,
@ -72,7 +72,7 @@ const AnalyticsPage: NextPageWithLayout = observer(() => {
primaryButton={{
text: "Create Cycles and Modules first",
onClick: () => {
setTrackElement("ANALYTICS_EMPTY_STATE");
setTrackElement("Analytics empty state");
toggleCreateProjectModal(true);
},
}}

View file

@ -4,7 +4,7 @@ import { observer } from "mobx-react-lite";
import { Tab } from "@headlessui/react";
import { useTheme } from "next-themes";
// hooks
import { useCycle, useUser } from "hooks/store";
import { useEventTracker, useCycle, useUser } from "hooks/store";
import useLocalStorage from "hooks/use-local-storage";
// layouts
import { AppLayout } from "layouts/app-layout";
@ -26,6 +26,7 @@ const ProjectCyclesPage: NextPageWithLayout = observer(() => {
// theme
const { resolvedTheme } = useTheme();
// store hooks
const { setTrackElement } = useEventTracker();
const {
membership: { currentProjectRole },
currentUser,
@ -91,6 +92,7 @@ const ProjectCyclesPage: NextPageWithLayout = observer(() => {
primaryButton={{
text: "Set your first cycle",
onClick: () => {
setTrackElement("Cycle empty state");
setCreateModal(true);
},
}}

View file

@ -3,7 +3,7 @@ import { useRouter } from "next/router";
import { observer } from "mobx-react-lite";
import { Search } from "lucide-react";
// hooks
import { useApplication, useMember, useUser } from "hooks/store";
import { useEventTracker, useMember, useUser } from "hooks/store";
import useToast from "hooks/use-toast";
// layouts
import { AppLayout } from "layouts/app-layout";
@ -27,9 +27,7 @@ const WorkspaceMembersSettingsPage: NextPageWithLayout = observer(() => {
const router = useRouter();
const { workspaceSlug } = router.query;
// store hooks
const {
eventTracker: { postHogEventTracker, setTrackElement },
} = useApplication();
const { captureEvent, setTrackElement } = useEventTracker();
const {
membership: { currentWorkspaceRole },
} = useUser();
@ -45,7 +43,7 @@ const WorkspaceMembersSettingsPage: NextPageWithLayout = observer(() => {
return inviteMembersToWorkspace(workspaceSlug.toString(), data)
.then(() => {
setInviteModal(false);
postHogEventTracker("MEMBER_INVITED", { state: "SUCCESS" });
captureEvent("Member invited", { state: "SUCCESS" });
setToastAlert({
type: "success",
title: "Success!",
@ -53,7 +51,7 @@ const WorkspaceMembersSettingsPage: NextPageWithLayout = observer(() => {
});
})
.catch((err) => {
postHogEventTracker("MEMBER_INVITED", { state: "FAILED" });
captureEvent("Member invited", { state: "FAILED" });
setToastAlert({
type: "error",
title: "Error!",

View file

@ -10,7 +10,7 @@ import { CheckCircle2 } from "lucide-react";
import { WorkspaceService } from "services/workspace.service";
import { UserService } from "services/user.service";
// hooks
import { useApplication, useUser } from "hooks/store";
import { useEventTracker, useUser } from "hooks/store";
import useToast from "hooks/use-toast";
// layouts
import DefaultLayout from "layouts/default-layout";
@ -40,9 +40,7 @@ const UserInvitationsPage: NextPageWithLayout = observer(() => {
const [invitationsRespond, setInvitationsRespond] = useState<string[]>([]);
const [isJoiningWorkspaces, setIsJoiningWorkspaces] = useState(false);
// store hooks
const {
eventTracker: { postHogEventTracker },
} = useApplication();
const { captureEvent } = useEventTracker();
const { currentUser, currentUserSettings } = useUser();
// router
const router = useRouter();
@ -84,7 +82,7 @@ const UserInvitationsPage: NextPageWithLayout = observer(() => {
mutate("USER_WORKSPACES");
const firstInviteId = invitationsRespond[0];
const redirectWorkspace = invitations?.find((i) => i.id === firstInviteId)?.workspace;
postHogEventTracker("MEMBER_ACCEPTED", {
captureEvent("Member accepted", {
...res,
state: "SUCCESS",
accepted_from: "App",

View file

@ -8,7 +8,7 @@ import { ChevronDown } from "lucide-react";
import { Menu, Transition } from "@headlessui/react";
import { Controller, useForm } from "react-hook-form";
// hooks
import { useApplication, useUser, useWorkspace } from "hooks/store";
import { useEventTracker, useUser, useWorkspace } from "hooks/store";
import useUserAuth from "hooks/use-user-auth";
// services
import { WorkspaceService } from "services/workspace.service";
@ -35,9 +35,7 @@ const OnboardingPage: NextPageWithLayout = observer(() => {
// router
const router = useRouter();
// store hooks
const {
eventTracker: { postHogEventTracker },
} = useApplication();
const { captureEvent } = useEventTracker();
const { currentUser, currentUserLoader, updateCurrentUser, updateUserOnBoard } = useUser();
const { workspaces, fetchWorkspaces } = useWorkspace();
// custom hooks
@ -81,7 +79,7 @@ const OnboardingPage: NextPageWithLayout = observer(() => {
await updateUserOnBoard()
.then(() => {
postHogEventTracker("USER_ONBOARDING_COMPLETE", {
captureEvent("User onboarding completed", {
user_role: user.role,
email: user.email,
user_id: user.id,