feat: init
This commit is contained in:
31
apps/web/core/hooks/use-timeline-chart.ts
Normal file
31
apps/web/core/hooks/use-timeline-chart.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { useContext } from "react";
|
||||
// lib
|
||||
import { StoreContext } from "@/lib/store-context";
|
||||
// Plane-web
|
||||
import type { IBaseTimelineStore } from "@/plane-web/store/timeline/base-timeline.store";
|
||||
//
|
||||
import { ETimeLineTypeType, useTimeLineType } from "../components/gantt-chart/contexts";
|
||||
|
||||
export const useTimeLineChart = (timeLineType: ETimeLineTypeType): IBaseTimelineStore => {
|
||||
const context = useContext(StoreContext);
|
||||
if (context === undefined) throw new Error("useTimeLineChart must be used within StoreProvider");
|
||||
|
||||
switch (timeLineType) {
|
||||
case ETimeLineTypeType.ISSUE:
|
||||
return context.timelineStore.issuesTimeLineStore;
|
||||
case ETimeLineTypeType.MODULE:
|
||||
return context.timelineStore.modulesTimeLineStore as IBaseTimelineStore;
|
||||
case ETimeLineTypeType.PROJECT:
|
||||
return context.timelineStore.projectTimeLineStore as IBaseTimelineStore;
|
||||
case ETimeLineTypeType.GROUPED:
|
||||
return context.timelineStore.groupedTimeLineStore as IBaseTimelineStore;
|
||||
}
|
||||
};
|
||||
|
||||
export const useTimeLineChartStore = () => {
|
||||
const timelineType = useTimeLineType();
|
||||
|
||||
if (!timelineType) throw new Error("useTimeLineChartStore must be used within TimeLineTypeContext");
|
||||
|
||||
return useTimeLineChart(timelineType);
|
||||
};
|
||||
Reference in New Issue
Block a user