forked from github/plane
0165abab3e
* 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>
106 lines
2.9 KiB
TypeScript
106 lines
2.9 KiB
TypeScript
export type IssueEventProps = {
|
|
eventName: string;
|
|
payload: any;
|
|
updates?: any;
|
|
group?: EventGroupProps;
|
|
path?: string;
|
|
};
|
|
|
|
export type EventProps = {
|
|
eventName: string;
|
|
payload: any;
|
|
group?: EventGroupProps;
|
|
};
|
|
|
|
export type EventGroupProps = {
|
|
isGrouping?: boolean;
|
|
groupType?: string;
|
|
groupId?: string;
|
|
};
|
|
|
|
export const getProjectEventPayload = (payload: any) => ({
|
|
workspace_id: payload.workspace_id,
|
|
project_id: payload.id,
|
|
identifier: payload.identifier,
|
|
created_at: payload.created_at,
|
|
updated_at: payload.updated_at,
|
|
state: payload.state,
|
|
element: payload.element,
|
|
});
|
|
|
|
export const getCycleEventPayload = (payload: any) => ({
|
|
workspace_id: payload.workspace_id,
|
|
project_id: payload.id,
|
|
cycle_id: payload.id,
|
|
created_at: payload.created_at,
|
|
updated_at: payload.updated_at,
|
|
start_date: payload.start_date,
|
|
target_date: payload.target_date,
|
|
cycle_status: payload.status,
|
|
state: payload.state,
|
|
element: payload.element,
|
|
});
|
|
|
|
export const getModuleEventPayload = (payload: any) => ({
|
|
workspace_id: payload.workspace_id,
|
|
project_id: payload.id,
|
|
module_id: payload.id,
|
|
created_at: payload.created_at,
|
|
updated_at: payload.updated_at,
|
|
start_date: payload.start_date,
|
|
target_date: payload.target_date,
|
|
module_status: payload.status,
|
|
state: payload.state,
|
|
element: payload.element,
|
|
});
|
|
|
|
export const getIssueEventPayload = (props: IssueEventProps) => {
|
|
const { eventName, payload, updates, path } = props;
|
|
let eventPayload: any = {
|
|
issue_id: payload.id,
|
|
estimate_point: payload.estimate_point,
|
|
link_count: payload.link_count,
|
|
target_date: payload.target_date,
|
|
is_draft: payload.is_draft,
|
|
label_ids: payload.label_ids,
|
|
assignee_ids: payload.assignee_ids,
|
|
created_at: payload.created_at,
|
|
updated_at: payload.updated_at,
|
|
sequence_id: payload.sequence_id,
|
|
module_ids: payload.module_ids,
|
|
sub_issues_count: payload.sub_issues_count,
|
|
parent_id: payload.parent_id,
|
|
project_id: payload.project_id,
|
|
priority: payload.priority,
|
|
state_id: payload.state_id,
|
|
start_date: payload.start_date,
|
|
attachment_count: payload.attachment_count,
|
|
cycle_id: payload.cycle_id,
|
|
module_id: payload.module_id,
|
|
archived_at: payload.archived_at,
|
|
state: payload.state,
|
|
view_id: path?.includes("workspace-views") || path?.includes("views") ? path.split("/").pop() : "",
|
|
};
|
|
|
|
if (eventName === "Issue updated") {
|
|
eventPayload = {
|
|
...eventPayload,
|
|
...updates,
|
|
updated_from: props.path?.includes("workspace-views")
|
|
? "All views"
|
|
: props.path?.includes("cycles")
|
|
? "Cycle"
|
|
: props.path?.includes("modules")
|
|
? "Module"
|
|
: props.path?.includes("views")
|
|
? "Project view"
|
|
: props.path?.includes("inbox")
|
|
? "Inbox"
|
|
: props.path?.includes("draft")
|
|
? "Draft"
|
|
: "Project",
|
|
};
|
|
}
|
|
return eventPayload;
|
|
};
|