forked from github/plane
chore: store setup for build fixes
This commit is contained in:
parent
6d52801ea7
commit
f69d34698a
@ -14,18 +14,19 @@ import { observer } from "mobx-react-lite";
|
|||||||
import { useMobxStore } from "lib/mobx/store-provider";
|
import { useMobxStore } from "lib/mobx/store-provider";
|
||||||
import { RootStore } from "store/root";
|
import { RootStore } from "store/root";
|
||||||
// default data
|
// default data
|
||||||
import { issueFilterVisibilityData } from "store/helpers/issue-data";
|
// import { issueFilterVisibilityData } from "store/helpers/issue-data";
|
||||||
|
|
||||||
export const FilterPreview = observer(() => {
|
export const FilterPreview = observer(() => {
|
||||||
const store: RootStore = useMobxStore();
|
const store: RootStore = useMobxStore();
|
||||||
const { issueFilters: issueFilterStore } = store;
|
const { issueFilter: issueFilterStore } = store;
|
||||||
|
|
||||||
const handleFilterSectionVisibility = (section_key: string) =>
|
const handleFilterSectionVisibility = (section_key: string) => {
|
||||||
issueFilterStore?.issueView &&
|
// issueFilterStore?.issueView &&
|
||||||
issueFilterStore?.issueLayout &&
|
// issueFilterStore?.issueLayout &&
|
||||||
issueFilterVisibilityData[issueFilterStore?.issueView === "my_issues" ? "my_issues" : "issues"]?.filters?.[
|
// issueFilterVisibilityData[issueFilterStore?.issueView === "my_issues" ? "my_issues" : "issues"]?.filters?.[
|
||||||
issueFilterStore?.issueLayout
|
// issueFilterStore?.issueLayout
|
||||||
]?.includes(section_key);
|
// ]?.includes(section_key);
|
||||||
|
};
|
||||||
|
|
||||||
const validateFiltersAvailability =
|
const validateFiltersAvailability =
|
||||||
issueFilterStore?.userFilters?.filters != null &&
|
issueFilterStore?.userFilters?.filters != null &&
|
||||||
|
@ -6,6 +6,7 @@ import { IssuesRoot } from "components/issue-layouts/root";
|
|||||||
// mobx store
|
// mobx store
|
||||||
import { useMobxStore } from "lib/mobx/store-provider";
|
import { useMobxStore } from "lib/mobx/store-provider";
|
||||||
import { RootStore } from "store/root";
|
import { RootStore } from "store/root";
|
||||||
|
import useSWR from "swr";
|
||||||
|
|
||||||
const KanBanViewRoot = () => {
|
const KanBanViewRoot = () => {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@ -14,32 +15,41 @@ const KanBanViewRoot = () => {
|
|||||||
project_slug: string;
|
project_slug: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
const { issue: issueViewStore, workspace: workspaceStore, project: projectStore }: RootStore = useMobxStore();
|
const {
|
||||||
|
issue: issueViewStore,
|
||||||
|
workspace: workspaceStore,
|
||||||
|
project: projectStore,
|
||||||
|
issueFilter: issueFilterStore,
|
||||||
|
}: RootStore = useMobxStore();
|
||||||
|
|
||||||
|
useSWR(
|
||||||
|
workspace_slug && project_slug ? "USER_FILTERS" : null,
|
||||||
|
workspace_slug && project_slug
|
||||||
|
? () => {
|
||||||
|
console.log("sdad");
|
||||||
|
issueFilterStore.fetchUserFilters(workspace_slug.toString(), project_slug.toString());
|
||||||
|
}
|
||||||
|
: null
|
||||||
|
);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
console.log("request init--->");
|
console.log("request init--->");
|
||||||
const init = async () => {
|
const init = async () => {
|
||||||
workspaceStore.setWorkspaceId(workspace_slug);
|
// workspaceStore.setWorkspaceId(workspace_slug);
|
||||||
await workspaceStore.getWorkspaces();
|
// await workspaceStore.getWorkspaces();
|
||||||
await workspaceStore.getWorkspaceLabels(workspace_slug);
|
// await workspaceStore.getWorkspaceLabels(workspace_slug);
|
||||||
|
// projectStore.setProject(project_slug);
|
||||||
projectStore.setProject(project_slug);
|
// await projectStore.getWorkspaceProjects(workspace_slug);
|
||||||
await projectStore.getWorkspaceProjects(workspace_slug);
|
// await projectStore.getProjectStates(workspace_slug, project_slug);
|
||||||
await projectStore.getProjectStates(workspace_slug, project_slug);
|
// await projectStore.getProjectLabels(workspace_slug, project_slug);
|
||||||
await projectStore.getProjectLabels(workspace_slug, project_slug);
|
// await projectStore.getProjectMembers(workspace_slug, project_slug);
|
||||||
await projectStore.getProjectMembers(workspace_slug, project_slug);
|
// await issueViewStore.getProjectIssuesAsync(workspace_slug, project_slug);
|
||||||
|
|
||||||
await issueViewStore.getProjectIssuesAsync(workspace_slug, project_slug);
|
|
||||||
};
|
};
|
||||||
if (workspace_slug && project_slug) init();
|
if (workspace_slug && project_slug) init();
|
||||||
console.log("request completed--->");
|
console.log("request completed--->");
|
||||||
}, [workspace_slug, project_slug, issueViewStore, workspaceStore, projectStore]);
|
}, [workspace_slug, project_slug, issueViewStore, workspaceStore, projectStore]);
|
||||||
|
|
||||||
return (
|
return <div className="w-screen min-h-[600px] h-screen">{/* <IssuesRoot /> */}</div>;
|
||||||
<div className="w-screen min-h-[600px] h-screen">
|
|
||||||
<IssuesRoot />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default KanBanViewRoot;
|
export default KanBanViewRoot;
|
||||||
|
@ -12,7 +12,7 @@ import type {
|
|||||||
} from "types";
|
} from "types";
|
||||||
import { API_BASE_URL } from "helpers/common.helper";
|
import { API_BASE_URL } from "helpers/common.helper";
|
||||||
|
|
||||||
export class IssueServices extends APIService {
|
export class IssueService extends APIService {
|
||||||
constructor() {
|
constructor() {
|
||||||
super(API_BASE_URL);
|
super(API_BASE_URL);
|
||||||
}
|
}
|
||||||
@ -607,6 +607,6 @@ export class IssueServices extends APIService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const issuesServices = new IssueServices();
|
const issueService = new IssueService();
|
||||||
|
|
||||||
export default issuesServices;
|
export default issueService;
|
||||||
|
@ -16,7 +16,7 @@ import type {
|
|||||||
TProjectIssuesSearchParams,
|
TProjectIssuesSearchParams,
|
||||||
} from "types";
|
} from "types";
|
||||||
|
|
||||||
export class ProjectServices extends APIService {
|
export class ProjectService extends APIService {
|
||||||
constructor() {
|
constructor() {
|
||||||
super(API_BASE_URL);
|
super(API_BASE_URL);
|
||||||
}
|
}
|
||||||
@ -336,4 +336,4 @@ export class ProjectServices extends APIService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default new ProjectServices();
|
export default new ProjectService();
|
||||||
|
@ -6,7 +6,7 @@ import trackEventServices from "services/track_event.service";
|
|||||||
import { ICurrentUserResponse } from "types";
|
import { ICurrentUserResponse } from "types";
|
||||||
import { IProjectPublishSettings } from "store/project_publish";
|
import { IProjectPublishSettings } from "store/project_publish";
|
||||||
|
|
||||||
class ProjectServices extends APIService {
|
export class ProjectPublishServices extends APIService {
|
||||||
constructor() {
|
constructor() {
|
||||||
super(API_BASE_URL);
|
super(API_BASE_URL);
|
||||||
}
|
}
|
||||||
@ -98,4 +98,4 @@ class ProjectServices extends APIService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ProjectServices;
|
export default new ProjectPublishServices();
|
||||||
|
@ -2,8 +2,8 @@ import { action, computed, observable, makeObservable, runInAction } from "mobx"
|
|||||||
// types
|
// types
|
||||||
import { RootStore } from "./root";
|
import { RootStore } from "./root";
|
||||||
// services
|
// services
|
||||||
import { ProjectServices } from "services/project.service";
|
import { ProjectService } from "services/project.service";
|
||||||
import { IssueServices } from "services/issue.service";
|
import { IssueService } from "services/issue.service";
|
||||||
|
|
||||||
export interface ICycleStore {
|
export interface ICycleStore {
|
||||||
loader: boolean;
|
loader: boolean;
|
||||||
@ -40,8 +40,8 @@ class CycleStore implements ICycleStore {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.rootStore = _rootStore;
|
this.rootStore = _rootStore;
|
||||||
this.projectService = new ProjectServices();
|
this.projectService = new ProjectService();
|
||||||
this.issueService = new IssueServices();
|
this.issueService = new IssueService();
|
||||||
}
|
}
|
||||||
|
|
||||||
// computed
|
// computed
|
||||||
|
@ -2,7 +2,7 @@ import { observable, action, makeObservable, runInAction } from "mobx";
|
|||||||
// types
|
// types
|
||||||
import { RootStore } from "./root";
|
import { RootStore } from "./root";
|
||||||
// services
|
// services
|
||||||
import { IssueServices } from "services/issue.service";
|
import { IssueService } from "services/issue.service";
|
||||||
|
|
||||||
export type IPeekMode = "side" | "modal" | "full";
|
export type IPeekMode = "side" | "modal" | "full";
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ class IssueViewDetailStore implements IIssueViewDetailStore {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.rootStore = _rootStore;
|
this.rootStore = _rootStore;
|
||||||
this.issueService = new IssueServices();
|
this.issueService = new IssueService();
|
||||||
}
|
}
|
||||||
|
|
||||||
setPeekId = (issueId: string | null) => (this.peekId = issueId);
|
setPeekId = (issueId: string | null) => (this.peekId = issueId);
|
||||||
|
@ -1,12 +1,19 @@
|
|||||||
import { observable, action, computed, makeObservable, runInAction } from "mobx";
|
import { observable, action, computed, makeObservable, runInAction } from "mobx";
|
||||||
// types
|
// types
|
||||||
import { RootStore } from "./root";
|
import { RootStore } from "./root";
|
||||||
|
import { ProjectService } from "services/project.service";
|
||||||
|
import { IssueService } from "services/issue.service";
|
||||||
|
|
||||||
export interface IIssueFilterStore {
|
export interface IIssueFilterStore {
|
||||||
loader: boolean;
|
loader: boolean;
|
||||||
error: any | null;
|
error: any | null;
|
||||||
userDisplayProperties: any;
|
userDisplayProperties: any;
|
||||||
userDisplayFilters: any;
|
userDisplayFilters: any;
|
||||||
|
userFilters: any;
|
||||||
|
defaultDisplayFilters: any;
|
||||||
|
defaultFilters: any;
|
||||||
|
|
||||||
|
fetchUserFilters: (workspaceSlug: string, projectSlug: string) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
class IssueFilterStore implements IIssueFilterStore {
|
class IssueFilterStore implements IIssueFilterStore {
|
||||||
@ -15,19 +22,64 @@ class IssueFilterStore implements IIssueFilterStore {
|
|||||||
// observables
|
// observables
|
||||||
userDisplayProperties: any = {};
|
userDisplayProperties: any = {};
|
||||||
userDisplayFilters: any = {};
|
userDisplayFilters: any = {};
|
||||||
|
userFilters: any = {};
|
||||||
|
defaultDisplayFilters: any = {};
|
||||||
|
defaultFilters: any = {};
|
||||||
|
defaultDisplayProperties: any = {
|
||||||
|
assignee: true,
|
||||||
|
due_date: true,
|
||||||
|
key: true,
|
||||||
|
labels: true,
|
||||||
|
priority: true,
|
||||||
|
start_date: true,
|
||||||
|
state: true,
|
||||||
|
sub_issue_count: true,
|
||||||
|
};
|
||||||
// root store
|
// root store
|
||||||
rootStore;
|
rootStore;
|
||||||
|
|
||||||
|
projectService;
|
||||||
|
issueService;
|
||||||
|
|
||||||
constructor(_rootStore: RootStore) {
|
constructor(_rootStore: RootStore) {
|
||||||
makeObservable(this, {
|
makeObservable(this, {
|
||||||
loader: observable.ref,
|
loader: observable.ref,
|
||||||
error: observable.ref,
|
error: observable.ref,
|
||||||
|
defaultDisplayFilters: observable.ref,
|
||||||
|
defaultFilters: observable.ref,
|
||||||
userDisplayProperties: observable.ref,
|
userDisplayProperties: observable.ref,
|
||||||
userDisplayFilters: observable.ref,
|
userDisplayFilters: observable.ref,
|
||||||
|
userFilters: observable.ref,
|
||||||
|
fetchUserFilters: action,
|
||||||
});
|
});
|
||||||
|
|
||||||
this.rootStore = _rootStore;
|
this.rootStore = _rootStore;
|
||||||
|
|
||||||
|
this.projectService = new ProjectService();
|
||||||
|
this.issueService = new IssueService();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fetchUserFilters = async (workspaceSlug: string, projectId: string) => {
|
||||||
|
try {
|
||||||
|
const memberResponse = await this.projectService.projectMemberMe(workspaceSlug, projectId);
|
||||||
|
const issueProperties = await this.issueService.getIssueProperties(workspaceSlug, projectId);
|
||||||
|
|
||||||
|
console.log("memberResponse", memberResponse);
|
||||||
|
|
||||||
|
console.log("issueProperties", issueProperties);
|
||||||
|
|
||||||
|
runInAction(() => {
|
||||||
|
this.userFilters = memberResponse?.view_props?.filters;
|
||||||
|
this.userDisplayFilters = memberResponse?.view_props?.display_filters;
|
||||||
|
this.userDisplayProperties = issueProperties?.properties || this.defaultDisplayProperties;
|
||||||
|
// default props from api
|
||||||
|
this.defaultFilters = memberResponse.default_props.filters;
|
||||||
|
this.defaultDisplayFilters = memberResponse.default_props.display_filters;
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.log("Failed to fetch user filters in issue filter store", error);
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default IssueFilterStore;
|
export default IssueFilterStore;
|
||||||
|
@ -2,8 +2,8 @@ import { action, computed, observable, makeObservable, runInAction } from "mobx"
|
|||||||
// types
|
// types
|
||||||
import { RootStore } from "./root";
|
import { RootStore } from "./root";
|
||||||
// services
|
// services
|
||||||
import { ProjectServices } from "services/project.service";
|
import { ProjectService } from "services/project.service";
|
||||||
import { IssueServices } from "services/issue.service";
|
import { IssueService } from "services/issue.service";
|
||||||
|
|
||||||
export interface IModuleStore {
|
export interface IModuleStore {
|
||||||
loader: boolean;
|
loader: boolean;
|
||||||
@ -40,8 +40,8 @@ class ModuleStore implements IModuleStore {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.rootStore = _rootStore;
|
this.rootStore = _rootStore;
|
||||||
this.projectService = new ProjectServices();
|
this.projectService = new ProjectService();
|
||||||
this.issueService = new IssueServices();
|
this.issueService = new IssueService();
|
||||||
}
|
}
|
||||||
|
|
||||||
// computed
|
// computed
|
||||||
|
@ -3,10 +3,10 @@ import { observable, action, computed, makeObservable, runInAction } from "mobx"
|
|||||||
import { RootStore } from "./root";
|
import { RootStore } from "./root";
|
||||||
import { IProject, IIssueLabels, IProjectMember, IStateResponse, IState, ICycle, IModule, IView, IPage } from "types";
|
import { IProject, IIssueLabels, IProjectMember, IStateResponse, IState, ICycle, IModule, IView, IPage } from "types";
|
||||||
// services
|
// services
|
||||||
import { ProjectServices } from "services/project.service";
|
import { ProjectService } from "services/project.service";
|
||||||
import { IssueServices } from "services/issue.service";
|
import { IssueService } from "services/issue.service";
|
||||||
import { ProjectStateServices } from "services/project_state.service";
|
import { ProjectStateServices } from "services/project_state.service";
|
||||||
import CycleService from "services/cycles.service";
|
import { CycleService } from "services/cycles.service";
|
||||||
import { ModuleService } from "services/modules.service";
|
import { ModuleService } from "services/modules.service";
|
||||||
import { ViewService } from "services/views.service";
|
import { ViewService } from "services/views.service";
|
||||||
import { PageService } from "services/page.service";
|
import { PageService } from "services/page.service";
|
||||||
@ -110,6 +110,7 @@ class ProjectStore implements IProjectStore {
|
|||||||
moduleService;
|
moduleService;
|
||||||
viewService;
|
viewService;
|
||||||
pageService;
|
pageService;
|
||||||
|
cycleService;
|
||||||
|
|
||||||
constructor(_rootStore: RootStore) {
|
constructor(_rootStore: RootStore) {
|
||||||
makeObservable(this, {
|
makeObservable(this, {
|
||||||
@ -148,12 +149,13 @@ class ProjectStore implements IProjectStore {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.rootStore = _rootStore;
|
this.rootStore = _rootStore;
|
||||||
this.projectService = new ProjectServices();
|
this.projectService = new ProjectService();
|
||||||
this.issueService = new IssueServices();
|
this.issueService = new IssueService();
|
||||||
this.stateService = new ProjectStateServices();
|
this.stateService = new ProjectStateServices();
|
||||||
this.moduleService = new ModuleService();
|
this.moduleService = new ModuleService();
|
||||||
this.viewService = new ViewService();
|
this.viewService = new ViewService();
|
||||||
this.pageService = new PageService();
|
this.pageService = new PageService();
|
||||||
|
this.cycleService = new CycleService();
|
||||||
}
|
}
|
||||||
|
|
||||||
get projectStatesByGroups() {
|
get projectStatesByGroups() {
|
||||||
@ -307,7 +309,7 @@ class ProjectStore implements IProjectStore {
|
|||||||
this.loader = true;
|
this.loader = true;
|
||||||
this.error = null;
|
this.error = null;
|
||||||
|
|
||||||
const cyclesResponse = await CycleService.getCyclesWithParams(workspaceSlug, projectSlug, "all");
|
const cyclesResponse = await this.cycleService.getCyclesWithParams(workspaceSlug, projectSlug, "all");
|
||||||
|
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
this.cycles = {
|
this.cycles = {
|
||||||
|
@ -2,7 +2,7 @@ import { observable, action, computed, makeObservable, runInAction } from "mobx"
|
|||||||
// types
|
// types
|
||||||
import { RootStore } from "./root";
|
import { RootStore } from "./root";
|
||||||
// services
|
// services
|
||||||
import ProjectServices from "services/project_publish.service";
|
import { ProjectPublishServices } from "services/project_publish.service";
|
||||||
|
|
||||||
export type TProjectPublishViews = "list" | "gantt" | "kanban" | "calendar" | "spreadsheet";
|
export type TProjectPublishViews = "list" | "gantt" | "kanban" | "calendar" | "spreadsheet";
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ class ProjectPublishStore implements IProjectPublishStore {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.rootStore = _rootStore;
|
this.rootStore = _rootStore;
|
||||||
this.projectPublishService = new ProjectServices();
|
this.projectPublishService = new ProjectPublishServices();
|
||||||
}
|
}
|
||||||
|
|
||||||
handleProjectModal = (project_id: string | null = null) => {
|
handleProjectModal = (project_id: string | null = null) => {
|
||||||
|
@ -2,8 +2,8 @@ import { action, computed, observable, makeObservable, runInAction } from "mobx"
|
|||||||
// types
|
// types
|
||||||
import { RootStore } from "./root";
|
import { RootStore } from "./root";
|
||||||
// services
|
// services
|
||||||
import { ProjectServices } from "services/project.service";
|
import { ProjectService } from "services/project.service";
|
||||||
import { IssueServices } from "services/issue.service";
|
import { IssueService } from "services/issue.service";
|
||||||
|
|
||||||
export interface IViewStore {
|
export interface IViewStore {
|
||||||
loader: boolean;
|
loader: boolean;
|
||||||
@ -40,8 +40,8 @@ class ViewStore implements IViewStore {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.rootStore = _rootStore;
|
this.rootStore = _rootStore;
|
||||||
this.projectService = new ProjectServices();
|
this.projectService = new ProjectService();
|
||||||
this.issueService = new IssueServices();
|
this.issueService = new IssueService();
|
||||||
}
|
}
|
||||||
|
|
||||||
// computed
|
// computed
|
||||||
|
@ -4,8 +4,8 @@ import { RootStore } from "./root";
|
|||||||
import { IIssueLabels, IProject, IWorkspace } from "types";
|
import { IIssueLabels, IProject, IWorkspace } from "types";
|
||||||
// services
|
// services
|
||||||
import { WorkspaceService } from "services/workspace.service";
|
import { WorkspaceService } from "services/workspace.service";
|
||||||
import { ProjectServices } from "services/project.service";
|
import { ProjectService } from "services/project.service";
|
||||||
import { IssueServices } from "services/issue.service";
|
import { IssueService } from "services/issue.service";
|
||||||
|
|
||||||
export interface IWorkspaceStore {
|
export interface IWorkspaceStore {
|
||||||
loader: boolean;
|
loader: boolean;
|
||||||
@ -64,8 +64,8 @@ class WorkspaceStore implements IWorkspaceStore {
|
|||||||
|
|
||||||
this.rootStore = _rootStore;
|
this.rootStore = _rootStore;
|
||||||
this.workspaceService = new WorkspaceService();
|
this.workspaceService = new WorkspaceService();
|
||||||
this.projectService = new ProjectServices();
|
this.projectService = new ProjectService();
|
||||||
this.issueService = new IssueServices();
|
this.issueService = new IssueService();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user