From 8d86087feeae29d9614991657bb02aa9299bf1ca Mon Sep 17 00:00:00 2001 From: gurusainath Date: Mon, 4 Sep 2023 13:07:55 +0530 Subject: [PATCH] chore: kanban refactoring --- .../core/views/board-view/all-boards.tsx | 2 + web/components/kanban-layout/index.tsx | 11 +++ web/store/kanban.ts | 82 +++++++++++++++++++ web/store/root.ts | 3 + 4 files changed, 98 insertions(+) create mode 100644 web/components/kanban-layout/index.tsx create mode 100644 web/store/kanban.ts diff --git a/web/components/core/views/board-view/all-boards.tsx b/web/components/core/views/board-view/all-boards.tsx index ee0fc668b..49f537044 100644 --- a/web/components/core/views/board-view/all-boards.tsx +++ b/web/components/core/views/board-view/all-boards.tsx @@ -36,6 +36,8 @@ export const AllBoards: React.FC = ({ }) => { const { groupByProperty: selectedGroup, groupedIssues, showEmptyGroups } = viewProps; + console.log("viewProps", viewProps); + return ( <> {groupedIssues ? ( diff --git a/web/components/kanban-layout/index.tsx b/web/components/kanban-layout/index.tsx new file mode 100644 index 000000000..cd910124d --- /dev/null +++ b/web/components/kanban-layout/index.tsx @@ -0,0 +1,11 @@ +import React from "react"; + +export const KanbanInitLayout = () => { + console.log(""); + + return ( +
+
Hello
+
+ ); +}; diff --git a/web/store/kanban.ts b/web/store/kanban.ts new file mode 100644 index 000000000..81730032f --- /dev/null +++ b/web/store/kanban.ts @@ -0,0 +1,82 @@ +import { observable, action, computed, makeObservable, runInAction } from "mobx"; +// types +import { RootStore } from "./root"; +// services + +export interface IKanbanStore { + loader: boolean; + error: any | null; + + // current issue view + issueView?: "kanban"; + + // filters + priority?: null; + state?: null; + assignees?: null; + createdBy?: null; + labels?: null; + startDate?: null; + dueDate?: null; + userSelectedParams?: { + assignees: undefined | string; + created_by: undefined | string; + group_by: undefined | string; + labels: undefined | string; + order_by: undefined | string; + priority: undefined | string; + start_date: undefined | string; + state: undefined | string; + sub_issue: boolean; + target_date: undefined | string; + type: undefined | string; + }; + + // display properties + displayProperties?: { + assignee: boolean; + attachment_count: boolean; + created_on: boolean; + due_date: boolean; + estimate: boolean; + key: boolean; + labels: boolean; + link: boolean; + priority: boolean; + start_date: boolean; + state: boolean; + sub_issue_count: boolean; + updated_on: boolean; + }; + + // extra's + showEmptyGroups?: boolean; + + issues?: null; +} + +class KanbanStore implements IKanbanStore { + loader: boolean = false; + error: any | null = null; + + // root store + rootStore; + // service + projectPublishService = null; + + constructor(_rootStore: RootStore) { + makeObservable(this, { + // observable + loader: observable, + error: observable, + + // action + // computed + }); + + this.rootStore = _rootStore; + this.projectPublishService = null; + } +} + +export default KanbanStore; diff --git a/web/store/root.ts b/web/store/root.ts index 40dd62fe6..2e7a0f242 100644 --- a/web/store/root.ts +++ b/web/store/root.ts @@ -5,6 +5,7 @@ import UserStore from "./user"; import ThemeStore from "./theme"; import IssuesStore from "./issues"; import ProjectPublishStore, { IProjectPublishStore } from "./project-publish"; +import KanbanStore from "./kanban"; enableStaticRendering(typeof window === "undefined"); @@ -13,11 +14,13 @@ export class RootStore { theme; projectPublish: IProjectPublishStore; issues: IssuesStore; + kanban: KanbanStore; constructor() { this.user = new UserStore(this); this.theme = new ThemeStore(this); this.projectPublish = new ProjectPublishStore(this); this.issues = new IssuesStore(this); + this.kanban = new KanbanStore(this); } }