mirror of
https://github.com/makeplane/plane.git
synced 2026-07-13 14:01:45 +02:00
* fix: project grouping bugs * feat: join btn change + access filters * fix: handled states api call + made attributes common
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
"use client";
|
|
|
|
import { observer } from "mobx-react";
|
|
// plane web components
|
|
import { ProjectBoardLayout } from "@/plane-web/components/projects/layouts";
|
|
// plane web hooks
|
|
import { useProjectFilter } from "@/plane-web/hooks/store/workspace-project-states";
|
|
// types
|
|
import { EProjectLayouts } from "@/plane-web/types/workspace-project-filters";
|
|
// plane web components
|
|
import { BaseProjectRoot } from "./gallery/base-gallery-root";
|
|
import { BaseGanttRoot } from "./gantt/base-gantt-root";
|
|
import { BaseListRoot } from "./list/base-list-root";
|
|
|
|
export const ProjectLayoutRoot = observer(() => {
|
|
const { filters } = useProjectFilter();
|
|
|
|
// derived values
|
|
const currentLayout = filters?.layout;
|
|
|
|
const ProjectLayout = (props: { activeLayout: EProjectLayouts | undefined }) => {
|
|
switch (props.activeLayout) {
|
|
case EProjectLayouts.BOARD:
|
|
return <ProjectBoardLayout />;
|
|
case EProjectLayouts.TIMELINE:
|
|
return <BaseGanttRoot />;
|
|
case EProjectLayouts.GALLERY:
|
|
return <BaseProjectRoot />;
|
|
case EProjectLayouts.TABLE:
|
|
return <BaseListRoot />;
|
|
default:
|
|
return <></>;
|
|
}
|
|
};
|
|
|
|
return <ProjectLayout activeLayout={currentLayout} />;
|
|
});
|