[WEB-1301] chore: handled issues count in project, module, and cycle issues (#4538)
* chore: handled issues count in project, module, and cycle issues * chore: changed the typo from getIssuesCount to issuesCount
This commit is contained in:
parent
e2ac60e259
commit
4feec35773
7 changed files with 127 additions and 40 deletions
|
|
@ -7,6 +7,8 @@ import update from "lodash/update";
|
|||
import { action, observable, makeObservable, computed, runInAction } from "mobx";
|
||||
// types
|
||||
import { TIssue, TLoader, TGroupedIssues, TSubGroupedIssues, TUnGroupedIssues, ViewFlags } from "@plane/types";
|
||||
// helpers
|
||||
import { issueCountBasedOnFilters } from "@/helpers/issue.helper";
|
||||
// services
|
||||
import { IssueService } from "@/services/issue";
|
||||
import { ModuleService } from "@/services/module.service";
|
||||
|
|
@ -21,6 +23,7 @@ export interface IModuleIssues {
|
|||
issues: { [module_id: string]: string[] };
|
||||
viewFlags: ViewFlags;
|
||||
// computed
|
||||
issuesCount: number;
|
||||
groupedIssueIds: TGroupedIssues | TSubGroupedIssues | TUnGroupedIssues | undefined;
|
||||
// actions
|
||||
getIssueIds: (groupId?: string, subGroupId?: string) => string[] | undefined;
|
||||
|
|
@ -95,6 +98,7 @@ export class ModuleIssues extends IssueHelperStore implements IModuleIssues {
|
|||
loader: observable.ref,
|
||||
issues: observable,
|
||||
// computed
|
||||
issuesCount: computed,
|
||||
groupedIssueIds: computed,
|
||||
// action
|
||||
fetchIssues: action,
|
||||
|
|
@ -113,6 +117,22 @@ export class ModuleIssues extends IssueHelperStore implements IModuleIssues {
|
|||
this.moduleService = new ModuleService();
|
||||
}
|
||||
|
||||
get issuesCount() {
|
||||
let issuesCount = 0;
|
||||
|
||||
const displayFilters = this.rootIssueStore?.moduleIssuesFilter?.issueFilters?.displayFilters;
|
||||
const groupedIssueIds = this.groupedIssueIds;
|
||||
if (!displayFilters || !groupedIssueIds) return issuesCount;
|
||||
|
||||
const layout = displayFilters?.layout || undefined;
|
||||
const groupBy = displayFilters?.group_by || undefined;
|
||||
const subGroupBy = displayFilters?.sub_group_by || undefined;
|
||||
|
||||
if (!layout) return issuesCount;
|
||||
issuesCount = issueCountBasedOnFilters(groupedIssueIds, layout, groupBy, subGroupBy);
|
||||
return issuesCount;
|
||||
}
|
||||
|
||||
get groupedIssueIds() {
|
||||
const moduleId = this.rootIssueStore?.moduleId;
|
||||
if (!moduleId) return undefined;
|
||||
|
|
@ -370,9 +390,9 @@ export class ModuleIssues extends IssueHelperStore implements IModuleIssues {
|
|||
|
||||
/**
|
||||
* change modules array in issue
|
||||
* @param workspaceSlug
|
||||
* @param projectId
|
||||
* @param issueId
|
||||
* @param workspaceSlug
|
||||
* @param projectId
|
||||
* @param issueId
|
||||
* @param addModuleIds array of modules to be added
|
||||
* @param removeModuleIds array of modules to be removed
|
||||
*/
|
||||
|
|
@ -404,7 +424,7 @@ export class ModuleIssues extends IssueHelperStore implements IModuleIssues {
|
|||
});
|
||||
});
|
||||
});
|
||||
if(originalModuleIds){
|
||||
if (originalModuleIds) {
|
||||
// update the root issue map with the new module ids
|
||||
let currentModuleIds = concat([...originalModuleIds], addModuleIds);
|
||||
currentModuleIds = pull(currentModuleIds, ...removeModuleIds);
|
||||
|
|
@ -420,7 +440,6 @@ export class ModuleIssues extends IssueHelperStore implements IModuleIssues {
|
|||
if (!isEmpty(removeModuleIds)) {
|
||||
await this.moduleService.removeModulesFromIssueBulk(workspaceSlug, projectId, issueId, removeModuleIds);
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
// revert the issue back to its original module ids
|
||||
set(this.rootStore.issues.issuesMap, [issueId, "module_ids"], originalModuleIds);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue