forked from github/plane
efd3ebf067
* refactor: updated preloaded function for the list view quick add * fix: resolved bug in the assignee dropdown * chore: issue sidebar link improvement * fix: resolved subscription store bug * chore: updated preloaded function for the kanban layout quick add * chore: resolved issues in the list filters and component * chore: filter store updated * fix: issue serializer changed * chore: quick add preload function updated * fix: build error * fix: serializer changed * fix: minor request change * chore: resolved build issues and updated the prepopulated data in the quick add issue. * fix: build fix and code refactor * fix: spreadsheet layout quick add fix * fix: issue peek overview link section updated * fix: cycle status bug fix * fix: serializer changes * fix: assignee and labels listing * chore: issue modal parent_id default value updated * fix: cycle and module issue serializer change * fix: cycle list serializer changed * chore: prepopulated validation in both list and kanban for quick add and group header add issues * chore: group header validation added * fix: issue response payload change * dev: make cycle and module issue create response simillar * chore: custom control link component added * dev: make issue create and update response simillar to list and retrieve * fix: build error * chore: control link component improvement * chore: globalise issue peek overview * chore: control link component improvement * chore: made changes and optimised the issue peek overview root * build-error: resolved build erros for issueId dependancy from issue detail store * chore: peek overview link fix * dev: update state nullable rule --------- Co-authored-by: gurusainath <gurusainath007@gmail.com> Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> Co-authored-by: pablohashescobar <nikhilschacko@gmail.com>
78 lines
2.4 KiB
TypeScript
78 lines
2.4 KiB
TypeScript
import { action, computed, makeObservable, observable, runInAction } from "mobx";
|
|
import { IssueRootStore } from "./root.store";
|
|
// types
|
|
|
|
export interface IIssueKanBanViewStore {
|
|
kanBanToggle: {
|
|
groupByHeaderMinMax: string[];
|
|
subgroupByIssuesVisibility: string[];
|
|
};
|
|
// computed
|
|
canUserDragDrop: boolean;
|
|
canUserDragDropVertically: boolean;
|
|
canUserDragDropHorizontally: boolean;
|
|
// actions
|
|
handleKanBanToggle: (toggle: "groupByHeaderMinMax" | "subgroupByIssuesVisibility", value: string) => void;
|
|
}
|
|
|
|
export class IssueKanBanViewStore implements IIssueKanBanViewStore {
|
|
kanBanToggle: {
|
|
groupByHeaderMinMax: string[];
|
|
subgroupByIssuesVisibility: string[];
|
|
} = { groupByHeaderMinMax: [], subgroupByIssuesVisibility: [] };
|
|
// root store
|
|
rootStore;
|
|
|
|
constructor(_rootStore: IssueRootStore) {
|
|
makeObservable(this, {
|
|
kanBanToggle: observable,
|
|
// computed
|
|
canUserDragDrop: computed,
|
|
canUserDragDropVertically: computed,
|
|
canUserDragDropHorizontally: computed,
|
|
|
|
// actions
|
|
handleKanBanToggle: action,
|
|
});
|
|
|
|
this.rootStore = _rootStore;
|
|
}
|
|
|
|
get canUserDragDrop() {
|
|
return true;
|
|
if (this.rootStore.issueDetail.peekIssue?.issueId) return false;
|
|
// FIXME: uncomment and fix
|
|
// if (
|
|
// this.rootStore?.issueFilter?.userDisplayFilters?.order_by &&
|
|
// this.rootStore?.issueFilter?.userDisplayFilters?.order_by === "sort_order" &&
|
|
// this.rootStore?.issueFilter?.userDisplayFilters?.group_by &&
|
|
// ["state", "priority"].includes(this.rootStore?.issueFilter?.userDisplayFilters?.group_by)
|
|
// ) {
|
|
// if (!this.rootStore?.issueFilter?.userDisplayFilters?.sub_group_by) return true;
|
|
// if (
|
|
// this.rootStore?.issueFilter?.userDisplayFilters?.sub_group_by &&
|
|
// ["state", "priority"].includes(this.rootStore?.issueFilter?.userDisplayFilters?.sub_group_by)
|
|
// )
|
|
// return true;
|
|
// }
|
|
// return false;
|
|
}
|
|
|
|
get canUserDragDropVertically() {
|
|
return false;
|
|
}
|
|
|
|
get canUserDragDropHorizontally() {
|
|
return false;
|
|
}
|
|
|
|
handleKanBanToggle = (toggle: "groupByHeaderMinMax" | "subgroupByIssuesVisibility", value: string) => {
|
|
this.kanBanToggle = {
|
|
...this.kanBanToggle,
|
|
[toggle]: this.kanBanToggle[toggle].includes(value)
|
|
? this.kanBanToggle[toggle].filter((v) => v !== value)
|
|
: [...this.kanBanToggle[toggle], value],
|
|
};
|
|
};
|
|
}
|