refactor: cycles store (#2716)

* refactor: cycles store

* refactor: active cycle details
This commit is contained in:
Aaryan Khandelwal 2023-11-09 18:37:45 +05:30 committed by GitHub
parent 162faf8339
commit 884b219508
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 200 additions and 285 deletions

View file

@ -1,8 +1,7 @@
import { Fragment, useCallback, useEffect, useState, ReactElement } from "react";
import { useRouter } from "next/router";
import { Tab } from "@headlessui/react";
import useSWR from "swr";
import { observer } from "mobx-react-lite";
import { Tab } from "@headlessui/react";
import { Plus } from "lucide-react";
// hooks
import { useMobxStore } from "lib/mobx/store-provider";
@ -31,16 +30,7 @@ const ProjectCyclesPage: NextPageWithLayout = observer(() => {
const { currentProjectDetails } = projectStore;
// router
const router = useRouter();
const { workspaceSlug, projectId, peekCycle } = router.query as {
workspaceSlug: string;
projectId: string;
peekCycle: string;
};
// fetching project details
useSWR(
workspaceSlug && projectId ? `PROJECT_DETAILS_${projectId}` : null,
workspaceSlug && projectId ? () => projectStore.fetchProjectDetails(workspaceSlug, projectId) : null
);
const { workspaceSlug, projectId, peekCycle } = router.query;
const handleCurrentLayout = useCallback(
(_layout: TCycleLayout) => {
@ -83,11 +73,13 @@ const ProjectCyclesPage: NextPageWithLayout = observer(() => {
const cycleView = cycleStore?.cycleView;
const cycleLayout = cycleStore?.cycleLayout;
if (!workspaceSlug || !projectId) return null;
return (
<>
<CycleCreateUpdateModal
workspaceSlug={workspaceSlug}
projectId={projectId}
workspaceSlug={workspaceSlug.toString()}
projectId={projectId.toString()}
isOpen={createModal}
handleClose={() => setCreateModal(false)}
/>
@ -163,29 +155,29 @@ const ProjectCyclesPage: NextPageWithLayout = observer(() => {
<Tab.Panels as={Fragment}>
<Tab.Panel as="div" className="h-full overflow-y-auto">
{cycleView && cycleLayout && workspaceSlug && projectId && (
{cycleView && cycleLayout && (
<CyclesView
filter={"all"}
layout={cycleLayout as TCycleLayout}
workspaceSlug={workspaceSlug}
projectId={projectId}
peekCycle={peekCycle}
workspaceSlug={workspaceSlug.toString()}
projectId={projectId.toString()}
peekCycle={peekCycle?.toString()}
/>
)}
</Tab.Panel>
<Tab.Panel as="div" className="p-4 sm:p-5 space-y-5 h-full overflow-y-auto">
<ActiveCycleDetails workspaceSlug={workspaceSlug} projectId={projectId} />
<ActiveCycleDetails workspaceSlug={workspaceSlug.toString()} projectId={projectId.toString()} />
</Tab.Panel>
<Tab.Panel as="div" className="h-full overflow-y-auto">
{cycleView && cycleLayout && workspaceSlug && projectId && (
{cycleView && cycleLayout && (
<CyclesView
filter={"upcoming"}
layout={cycleLayout as TCycleLayout}
workspaceSlug={workspaceSlug}
projectId={projectId}
peekCycle={peekCycle}
workspaceSlug={workspaceSlug.toString()}
projectId={projectId.toString()}
peekCycle={peekCycle?.toString()}
/>
)}
</Tab.Panel>
@ -195,9 +187,9 @@ const ProjectCyclesPage: NextPageWithLayout = observer(() => {
<CyclesView
filter={"completed"}
layout={cycleLayout as TCycleLayout}
workspaceSlug={workspaceSlug}
projectId={projectId}
peekCycle={peekCycle}
workspaceSlug={workspaceSlug.toString()}
projectId={projectId.toString()}
peekCycle={peekCycle?.toString()}
/>
)}
</Tab.Panel>
@ -207,9 +199,9 @@ const ProjectCyclesPage: NextPageWithLayout = observer(() => {
<CyclesView
filter={"draft"}
layout={cycleLayout as TCycleLayout}
workspaceSlug={workspaceSlug}
projectId={projectId}
peekCycle={peekCycle}
workspaceSlug={workspaceSlug.toString()}
projectId={projectId.toString()}
peekCycle={peekCycle?.toString()}
/>
)}
</Tab.Panel>