import { observer } from "mobx-react";
import {
CalendarLayoutLoader,
GanttLayoutLoader,
KanbanLayoutLoader,
ListLayoutLoader,
SpreadsheetLayoutLoader,
} from "@/components/ui";
import { EIssueLayoutTypes } from "@/constants/issue";
import { useIssues } from "@/hooks/store";
import { useIssueStoreType } from "@/hooks/use-issue-layout-store";
import { IssueLayoutEmptyState } from "./empty-states";
const ActiveLoader = (props: { layout: EIssueLayoutTypes }) => {
const { layout } = props;
switch (layout) {
case EIssueLayoutTypes.LIST:
return ;
case EIssueLayoutTypes.KANBAN:
return ;
case EIssueLayoutTypes.SPREADSHEET:
return ;
case EIssueLayoutTypes.CALENDAR:
return ;
case EIssueLayoutTypes.GANTT:
return ;
default:
return null;
}
};
interface Props {
children: string | JSX.Element | JSX.Element[];
layout: EIssueLayoutTypes;
}
export const IssueLayoutHOC = observer((props: Props) => {
const { layout } = props;
const storeType = useIssueStoreType();
const { issues } = useIssues(storeType);
const issueCount = issues.getGroupIssueCount(undefined, undefined, false);
if (issues?.getIssueLoader() === "init-loader" || issueCount === undefined) {
return ;
}
if (issues.getGroupIssueCount(undefined, undefined, false) === 0 && layout !== EIssueLayoutTypes.CALENDAR) {
return ;
}
return <>{props.children}>;
});