plane/web/components/pages/pages-list-view.tsx
Prateek Shourya a2cdbd52dc
[WEB-1436] chore: pages improvement. (#4657)
* add empty state if no pages are available.
* set access to private in create page modal when the modal is open form private tab.
2024-05-31 18:30:38 +05:30

34 lines
1.1 KiB
TypeScript

import { observer } from "mobx-react-lite";
import useSWR from "swr";
import { TPageNavigationTabs } from "@plane/types";
// components
import { PagesListHeaderRoot, PagesListMainContent } from "@/components/pages";
// hooks
import { useProjectPages } from "@/hooks/store";
type TPageView = {
workspaceSlug: string;
projectId: string;
pageType: TPageNavigationTabs;
children: React.ReactNode;
};
export const PagesListView: React.FC<TPageView> = observer((props) => {
const { workspaceSlug, projectId, pageType, children } = props;
// store hooks
const { isAnyPageAvailable, getAllPages } = useProjectPages();
// fetching pages list
useSWR(projectId ? `PROJECT_PAGES_${projectId}` : null, projectId ? () => getAllPages(pageType) : null);
// pages loader
return (
<div className="relative w-full h-full overflow-hidden flex flex-col">
{/* tab header */}
{isAnyPageAvailable && (
<PagesListHeaderRoot pageType={pageType} projectId={projectId} workspaceSlug={workspaceSlug} />
)}
<PagesListMainContent pageType={pageType}>{children}</PagesListMainContent>
</div>
);
});