From 98e4db2d6a8fa91b7abe6cc109c5a894beccecd0 Mon Sep 17 00:00:00 2001 From: Anmol Singh Bhatia Date: Tue, 22 Oct 2024 15:38:56 +0530 Subject: [PATCH 1/2] chore: draft issue module update --- .../workspace-draft/draft-issue-block.tsx | 1 - .../draft-issue-properties.tsx | 43 ++++--------------- 2 files changed, 8 insertions(+), 36 deletions(-) diff --git a/web/core/components/issues/workspace-draft/draft-issue-block.tsx b/web/core/components/issues/workspace-draft/draft-issue-block.tsx index f9838645957..d1ae6e01cf0 100644 --- a/web/core/components/issues/workspace-draft/draft-issue-block.tsx +++ b/web/core/components/issues/workspace-draft/draft-issue-block.tsx @@ -177,7 +177,6 @@ export const DraftIssueBlock: FC = observer((props) => { updateIssue={async (projectId, issueId, data) => { await updateIssue(workspaceSlug, issueId, data); }} - activeLayout="List" />
) => Promise) | undefined; className: string; - activeLayout: string; } export const DraftIssueProperties: React.FC = observer((props) => { - const { issue, updateIssue, activeLayout, className } = props; + const { issue, updateIssue, className } = props; // store hooks const { getProjectById } = useProject(); const { labelMap } = useLabel(); - const { captureIssueEvent } = useEventTracker(); const { addCycleToIssue, addModulesToIssue } = useWorkspaceDraftIssues(); const { areEstimateEnabledByProjectId } = useProjectEstimates(); const { getStateById } = useProjectState(); @@ -59,19 +47,12 @@ export const DraftIssueProperties: React.FC = observer((props) // router const { workspaceSlug } = useParams(); - const pathname = usePathname(); - - const currentLayout = `${activeLayout} layout`; // derived values const stateDetails = getStateById(issue.state_id); const issueOperations = useMemo( () => ({ - addModulesToIssue: async (moduleIds: string[]) => { - if (!workspaceSlug || !issue.id) return; - await addModulesToIssue(workspaceSlug.toString(), issue.id, moduleIds); - }, - removeModulesFromIssue: async (moduleIds: string[]) => { + updateModulesToIssue: async (moduleIds: string[]) => { if (!workspaceSlug || !issue.id) return; await addModulesToIssue(workspaceSlug.toString(), issue.id, moduleIds); }, @@ -103,17 +84,9 @@ export const DraftIssueProperties: React.FC = observer((props) const handleModule = useCallback( (moduleIds: string[] | null) => { if (!issue || !issue.module_ids || !moduleIds) return; - - const updatedModuleIds = xor(issue.module_ids, moduleIds); - const modulesToAdd: string[] = []; - const modulesToRemove: string[] = []; - for (const moduleId of updatedModuleIds) - if (issue.module_ids.includes(moduleId)) modulesToRemove.push(moduleId); - else modulesToAdd.push(moduleId); - if (modulesToAdd.length > 0) issueOperations.addModulesToIssue(modulesToAdd); - if (modulesToRemove.length > 0) issueOperations.removeModulesFromIssue(modulesToRemove); + issueOperations.updateModulesToIssue(moduleIds); }, - [issueOperations, currentLayout, pathname, issue] + [issueOperations, issue] ); const handleCycle = useCallback( @@ -122,7 +95,7 @@ export const DraftIssueProperties: React.FC = observer((props) if (cycleId) issueOperations.addIssueToCycle?.(cycleId); else issueOperations.removeIssueFromCycle?.(); }, - [issue, issueOperations, currentLayout, pathname] + [issue, issueOperations] ); const handleStartDate = (date: Date | null) => From ee4aedc4ca609f93e057dab5f6bd503698d6fa39 Mon Sep 17 00:00:00 2001 From: Anmol Singh Bhatia Date: Tue, 22 Oct 2024 15:52:23 +0530 Subject: [PATCH 2/2] chore: code refactor --- .../issues/workspace-draft/draft-issue-properties.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/core/components/issues/workspace-draft/draft-issue-properties.tsx b/web/core/components/issues/workspace-draft/draft-issue-properties.tsx index 312d0a821d9..156e3c730cb 100644 --- a/web/core/components/issues/workspace-draft/draft-issue-properties.tsx +++ b/web/core/components/issues/workspace-draft/draft-issue-properties.tsx @@ -52,7 +52,7 @@ export const DraftIssueProperties: React.FC = observer((props) const issueOperations = useMemo( () => ({ - updateModulesToIssue: async (moduleIds: string[]) => { + updateIssueModules: async (moduleIds: string[]) => { if (!workspaceSlug || !issue.id) return; await addModulesToIssue(workspaceSlug.toString(), issue.id, moduleIds); }, @@ -84,7 +84,7 @@ export const DraftIssueProperties: React.FC = observer((props) const handleModule = useCallback( (moduleIds: string[] | null) => { if (!issue || !issue.module_ids || !moduleIds) return; - issueOperations.updateModulesToIssue(moduleIds); + issueOperations.updateIssueModules(moduleIds); }, [issueOperations, issue] );