From 5738a75123011422446b72669b281a2b19aba194 Mon Sep 17 00:00:00 2001 From: Anmol Singh Bhatia Date: Wed, 21 Feb 2024 18:01:19 +0530 Subject: [PATCH] chore: module select logic updated --- .../issues/issue-detail/module-select.tsx | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/web/components/issues/issue-detail/module-select.tsx b/web/components/issues/issue-detail/module-select.tsx index 9de94d2dd..7088d50d0 100644 --- a/web/components/issues/issue-detail/module-select.tsx +++ b/web/components/issues/issue-detail/module-select.tsx @@ -37,13 +37,22 @@ export const IssueModuleSelect: React.FC = observer((props) if (!issue || !issue.module_ids) return; setIsUpdating(true); const updatedModuleIds = xor(issue.module_ids, moduleIds); - for (const updatedModuleId of updatedModuleIds) { - if (issue.module_ids.includes(updatedModuleId)) { - await issueOperations.removeModulesFromIssue?.(workspaceSlug, projectId, issueId, [updatedModuleId]); + const modulesToAdd: string[] = []; + const modulesToRemove: string[] = []; + + for (const moduleId of updatedModuleIds) { + if (issue.module_ids.includes(moduleId)) { + modulesToRemove.push(moduleId); } else { - await issueOperations.addModulesToIssue?.(workspaceSlug, projectId, issueId, [updatedModuleId]); + modulesToAdd.push(moduleId); } } + if (modulesToRemove.length > 0) + await issueOperations.removeModulesFromIssue?.(workspaceSlug, projectId, issueId, modulesToRemove); + + if (modulesToAdd.length > 0) + await issueOperations.addModulesToIssue?.(workspaceSlug, projectId, issueId, modulesToAdd); + setIsUpdating(false); };