fix: quick add not working for labels & assignee (#2689)

* fix: quick add not working for labels & assignee

* fix: build error on spreadsheet view
This commit is contained in:
Dakshesh Jain
2023-11-08 12:28:02 +05:30
committed by GitHub
parent 9f206331bc
commit 53e7da08e4
7 changed files with 106 additions and 134 deletions

View File

@@ -1,7 +1,16 @@
import { v4 as uuidv4 } from "uuid";
// helpers
import { orderArrayBy } from "helpers/array.helper";
// types
import { IIssue, TIssueGroupByOptions, TIssueLayouts, TIssueOrderByOptions, TIssueParams } from "types";
import {
IIssue,
TIssueGroupByOptions,
TIssueLayouts,
TIssueOrderByOptions,
TIssueParams,
IProject,
IWorkspace,
} from "types";
// constants
import { ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "constants/issue";
@@ -109,3 +118,82 @@ export const handleIssueQueryParamsByLayout = (
return queryParams;
};
/**
*
* @description create a full issue payload with some default values. This function also parse the form field
* like assignees, labels, etc. and add them to the payload
* @param workspaceDetail workspace detail to be added in the issue payload
* @param projectDetail project detail to be added in the issue payload
* @param formData partial issue data from the form. This will override the default values
* @returns full issue payload with some default values
*/
export const createIssuePayload: (
workspaceDetail: IWorkspace,
projectDetail: IProject,
formData: Partial<IIssue>
) => IIssue = (workspaceDetail: IWorkspace, projectDetail: IProject, formData: Partial<IIssue>) => {
const payload = {
archived_at: null,
assignee_details: [],
attachment_count: 0,
attachments: [],
issue_relations: [],
related_issues: [],
bridge_id: null,
completed_at: new Date(),
created_at: "",
created_by: "",
cycle: null,
cycle_id: null,
cycle_detail: null,
description: {},
description_html: "",
description_stripped: "",
estimate_point: null,
issue_cycle: null,
issue_link: [],
issue_module: null,
label_details: [],
is_draft: false,
links_list: [],
link_count: 0,
module: null,
module_id: null,
name: "",
parent: null,
parent_detail: null,
priority: "none",
project: projectDetail.id,
project_detail: projectDetail,
sequence_id: 0,
sort_order: 0,
sprints: null,
start_date: null,
state: projectDetail.default_state,
state_detail: {} as any,
sub_issues_count: 0,
target_date: null,
updated_at: "",
updated_by: "",
workspace: workspaceDetail.id,
workspace_detail: workspaceDetail,
id: uuidv4(),
tempId: uuidv4(),
// to be overridden by the form data
...formData,
assignees: Array.isArray(formData.assignees)
? formData.assignees
: formData.assignees && formData.assignees !== "none" && formData.assignees !== null
? [formData.assignees]
: [],
labels: Array.isArray(formData.labels)
? formData.labels
: formData.labels && formData.labels !== "none" && formData.labels !== null
? [formData.labels]
: [],
} as IIssue;
return payload;
};