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}; });