mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
added project-automation events
This commit is contained in:
parent
3f88694366
commit
f7a4198865
@ -8,8 +8,10 @@ import { CustomSelect, Loader, ToggleSwitch } from "@plane/ui";
|
|||||||
import { SelectMonthModal } from "@/components/automation";
|
import { SelectMonthModal } from "@/components/automation";
|
||||||
// icon
|
// icon
|
||||||
// constants
|
// constants
|
||||||
|
import { AUTO_ARCHIVE_TOGGLED, AUTO_ARCHIVE_UPDATED } from "constants/event-tracker";
|
||||||
import { EUserProjectRoles, PROJECT_AUTOMATION_MONTHS } from "@/constants/project";
|
import { EUserProjectRoles, PROJECT_AUTOMATION_MONTHS } from "@/constants/project";
|
||||||
import { useProject, useUser } from "@/hooks/store";
|
// hooks
|
||||||
|
import { useProject, useUser, useEventTracker } from "@/hooks/store";
|
||||||
// types
|
// types
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
@ -27,6 +29,7 @@ export const AutoArchiveAutomation: React.FC<Props> = observer((props) => {
|
|||||||
membership: { currentProjectRole },
|
membership: { currentProjectRole },
|
||||||
} = useUser();
|
} = useUser();
|
||||||
const { currentProjectDetails } = useProject();
|
const { currentProjectDetails } = useProject();
|
||||||
|
const { captureEvent } = useEventTracker();
|
||||||
|
|
||||||
const isAdmin = currentProjectRole === EUserProjectRoles.ADMIN;
|
const isAdmin = currentProjectRole === EUserProjectRoles.ADMIN;
|
||||||
|
|
||||||
@ -54,11 +57,15 @@ export const AutoArchiveAutomation: React.FC<Props> = observer((props) => {
|
|||||||
</div>
|
</div>
|
||||||
<ToggleSwitch
|
<ToggleSwitch
|
||||||
value={currentProjectDetails?.archive_in !== 0}
|
value={currentProjectDetails?.archive_in !== 0}
|
||||||
onChange={() =>
|
onChange={() => {
|
||||||
currentProjectDetails?.archive_in === 0
|
currentProjectDetails?.archive_in === 0
|
||||||
? handleChange({ archive_in: 1 })
|
? 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"
|
size="sm"
|
||||||
disabled={!isAdmin}
|
disabled={!isAdmin}
|
||||||
/>
|
/>
|
||||||
@ -77,6 +84,9 @@ export const AutoArchiveAutomation: React.FC<Props> = observer((props) => {
|
|||||||
}`}
|
}`}
|
||||||
onChange={(val: number) => {
|
onChange={(val: number) => {
|
||||||
handleChange({ archive_in: val });
|
handleChange({ archive_in: val });
|
||||||
|
captureEvent(AUTO_ARCHIVE_UPDATED, {
|
||||||
|
range: val === 1 ? "1 month" : `${val} months`,
|
||||||
|
});
|
||||||
}}
|
}}
|
||||||
input
|
input
|
||||||
disabled={!isAdmin}
|
disabled={!isAdmin}
|
||||||
|
@ -5,8 +5,11 @@ import { ArchiveX } from "lucide-react";
|
|||||||
import { IProject } from "@plane/types";
|
import { IProject } from "@plane/types";
|
||||||
import { CustomSelect, CustomSearchSelect, ToggleSwitch, StateGroupIcon, DoubleCircleIcon, Loader } from "@plane/ui";
|
import { CustomSelect, CustomSearchSelect, ToggleSwitch, StateGroupIcon, DoubleCircleIcon, Loader } from "@plane/ui";
|
||||||
import { SelectMonthModal } from "@/components/automation";
|
import { SelectMonthModal } from "@/components/automation";
|
||||||
|
// constants
|
||||||
|
import { AUTO_CLOSE_Toggled, AUTO_CLOSE_UPDATED } from "constants/event-tracker";
|
||||||
import { EUserProjectRoles, PROJECT_AUTOMATION_MONTHS } from "@/constants/project";
|
import { EUserProjectRoles, PROJECT_AUTOMATION_MONTHS } from "@/constants/project";
|
||||||
import { useProject, useProjectState, useUser } from "@/hooks/store";
|
// hooks
|
||||||
|
import { useProject, useProjectState, useUser, useEventTracker } from "@/hooks/store";
|
||||||
// component
|
// component
|
||||||
// icons
|
// icons
|
||||||
// types
|
// types
|
||||||
@ -26,6 +29,7 @@ export const AutoCloseAutomation: React.FC<Props> = observer((props) => {
|
|||||||
} = useUser();
|
} = useUser();
|
||||||
const { currentProjectDetails } = useProject();
|
const { currentProjectDetails } = useProject();
|
||||||
const { projectStates } = useProjectState();
|
const { projectStates } = useProjectState();
|
||||||
|
const { captureEvent } = useEventTracker();
|
||||||
|
|
||||||
// const stateGroups = projectStateStore.groupedProjectStates ?? undefined;
|
// const stateGroups = projectStateStore.groupedProjectStates ?? undefined;
|
||||||
|
|
||||||
@ -80,11 +84,16 @@ export const AutoCloseAutomation: React.FC<Props> = observer((props) => {
|
|||||||
</div>
|
</div>
|
||||||
<ToggleSwitch
|
<ToggleSwitch
|
||||||
value={currentProjectDetails?.close_in !== 0}
|
value={currentProjectDetails?.close_in !== 0}
|
||||||
onChange={() =>
|
onChange={() => {
|
||||||
currentProjectDetails?.close_in === 0
|
currentProjectDetails?.close_in === 0
|
||||||
? handleChange({ close_in: 1, default_state: defaultState })
|
? 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"
|
size="sm"
|
||||||
disabled={!isAdmin}
|
disabled={!isAdmin}
|
||||||
/>
|
/>
|
||||||
@ -104,6 +113,10 @@ export const AutoCloseAutomation: React.FC<Props> = observer((props) => {
|
|||||||
}`}
|
}`}
|
||||||
onChange={(val: number) => {
|
onChange={(val: number) => {
|
||||||
handleChange({ close_in: val });
|
handleChange({ close_in: val });
|
||||||
|
captureEvent(AUTO_CLOSE_UPDATED, {
|
||||||
|
range: val === 1 ? "1 month" : `${val} months`,
|
||||||
|
state: currentProjectDetails?.default_state,
|
||||||
|
});
|
||||||
}}
|
}}
|
||||||
input
|
input
|
||||||
disabled={!isAdmin}
|
disabled={!isAdmin}
|
||||||
|
@ -186,6 +186,11 @@ export const LABEL_REMOVED_G = "Label removed from group";
|
|||||||
export const PAGE_CREATED = "Page created";
|
export const PAGE_CREATED = "Page created";
|
||||||
export const PAGE_UPDATED = "Page updated";
|
export const PAGE_UPDATED = "Page updated";
|
||||||
export const PAGE_DELETED = "Page deleted";
|
export const PAGE_DELETED = "Page deleted";
|
||||||
|
// 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";
|
||||||
// Member Events
|
// Member Events
|
||||||
export const MEMBER_INVITED = "Member invited";
|
export const MEMBER_INVITED = "Member invited";
|
||||||
export const MEMBER_ACCEPTED = "Member accepted";
|
export const MEMBER_ACCEPTED = "Member accepted";
|
||||||
|
Loading…
Reference in New Issue
Block a user