chore: added project automation events

This commit is contained in:
LAKHAN BAHETI 2024-03-05 11:21:35 +05:30
parent 38fbf1f513
commit 604b9c7632
3 changed files with 35 additions and 8 deletions

View File

@ -1,7 +1,7 @@
import React, { useState } from "react";
import { observer } from "mobx-react-lite";
// hooks
import { useProject, useUser } from "hooks/store";
import { useEventTracker, useProject, useUser } from "hooks/store";
// component
import { CustomSelect, Loader, ToggleSwitch } from "@plane/ui";
import { SelectMonthModal } from "components/automation";
@ -11,6 +11,7 @@ import { ArchiveRestore } from "lucide-react";
import { EUserProjectRoles, PROJECT_AUTOMATION_MONTHS } from "constants/project";
// types
import { IProject } from "@plane/types";
import { AUTO_ARCHIVE_TOGGLED, AUTO_ARCHIVE_UPDATED } from "constants/event-tracker";
type Props = {
handleChange: (formData: Partial<IProject>) => Promise<void>;
@ -27,6 +28,7 @@ export const AutoArchiveAutomation: React.FC<Props> = observer((props) => {
membership: { currentProjectRole },
} = useUser();
const { currentProjectDetails } = useProject();
const { captureEvent } = useEventTracker();
const isAdmin = currentProjectRole === EUserProjectRoles.ADMIN;
@ -54,11 +56,16 @@ export const AutoArchiveAutomation: React.FC<Props> = observer((props) => {
</div>
<ToggleSwitch
value={currentProjectDetails?.archive_in !== 0}
onChange={() =>
onChange={() => {
currentProjectDetails?.archive_in === 0
? handleChange({ archive_in: 1 })
: handleChange({ archive_in: 0 })
}
: handleChange({ archive_in: 0 });
captureEvent(AUTO_ARCHIVE_TOGGLED, {
toggle: currentProjectDetails?.archive_in === 0 ? "true" : "false",
range: `${currentProjectDetails?.archive_in == 0 ? 1 : 0} month`,
});
}}
size="sm"
disabled={!isAdmin}
/>
@ -76,6 +83,9 @@ export const AutoArchiveAutomation: React.FC<Props> = observer((props) => {
currentProjectDetails?.archive_in === 1 ? "month" : "months"
}`}
onChange={(val: number) => {
captureEvent(AUTO_ARCHIVE_UPDATED, {
range: val === 1 ? "1 month" : `${val} months`,
});
handleChange({ archive_in: val });
}}
input

View File

@ -1,7 +1,7 @@
import React, { useState } from "react";
import { observer } from "mobx-react-lite";
// hooks
import { useProject, useProjectState, useUser } from "hooks/store";
import { useEventTracker, useProject, useProjectState, useUser } from "hooks/store";
// component
import { SelectMonthModal } from "components/automation";
import { CustomSelect, CustomSearchSelect, ToggleSwitch, StateGroupIcon, DoubleCircleIcon, Loader } from "@plane/ui";
@ -11,6 +11,7 @@ import { ArchiveX } from "lucide-react";
import { IProject } from "@plane/types";
// constants
import { EUserProjectRoles, PROJECT_AUTOMATION_MONTHS } from "constants/project";
import { AUTO_CLOSE_Toggled, AUTO_CLOSE_UPDATED } from "constants/event-tracker";
type Props = {
handleChange: (formData: Partial<IProject>) => Promise<void>;
@ -26,6 +27,7 @@ export const AutoCloseAutomation: React.FC<Props> = observer((props) => {
} = useUser();
const { currentProjectDetails } = useProject();
const { projectStates } = useProjectState();
const { captureEvent } = useEventTracker();
// const stateGroups = projectStateStore.groupedProjectStates ?? undefined;
@ -80,11 +82,17 @@ export const AutoCloseAutomation: React.FC<Props> = observer((props) => {
</div>
<ToggleSwitch
value={currentProjectDetails?.close_in !== 0}
onChange={() =>
onChange={() => {
currentProjectDetails?.close_in === 0
? handleChange({ close_in: 1, default_state: defaultState })
: handleChange({ close_in: 0, default_state: null })
}
: handleChange({ close_in: 0, default_state: null });
captureEvent(AUTO_CLOSE_Toggled, {
toggle: currentProjectDetails?.close_in === 0 ? "true" : "false",
range: `${currentProjectDetails?.close_in == 0 ? 1 : 0} month`,
state: currentProjectDetails?.close_in === 0 ? undefined : defaultState,
});
}}
size="sm"
disabled={!isAdmin}
/>
@ -104,6 +112,10 @@ export const AutoCloseAutomation: React.FC<Props> = observer((props) => {
}`}
onChange={(val: number) => {
handleChange({ close_in: val });
captureEvent(AUTO_CLOSE_UPDATED, {
range: val === 1 ? "1 month" : `${val} months`,
state: currentProjectDetails?.default_state,
});
}}
input
disabled={!isAdmin}

View File

@ -237,6 +237,11 @@ export const LABEL_DELETED = "Label deleted";
export const LABEL_GROUP_DELETED = "Label group deleted";
export const LABEL_ADDED_G = "Label added to group";
export const LABEL_REMOVED_G = "Label removed from group";
// Project Automation events
export const AUTO_ARCHIVE_TOGGLED = "Auto archive toggled";
export const AUTO_ARCHIVE_UPDATED = "Auto archive updated";
export const AUTO_CLOSE_Toggled = "Auto close toggled";
export const AUTO_CLOSE_UPDATED = "Auto close updated";
// Project Page Events
export const PAGE_CREATED = "Page created";
export const PAGE_UPDATED = "Page updated";