import { useState, Fragment, ReactElement } from "react"; import { useRouter } from "next/router"; import dynamic from "next/dynamic"; import { Tab } from "@headlessui/react"; import useSWR from "swr"; import { observer } from "mobx-react-lite"; // hooks import useLocalStorage from "hooks/use-local-storage"; import useUserAuth from "hooks/use-user-auth"; import { useMobxStore } from "lib/mobx/store-provider"; // layouts import { AppLayout } from "layouts/app-layout"; // components import { RecentPagesList, CreateUpdatePageModal } from "components/pages"; import { PagesHeader } from "components/headers"; // types import { NextPageWithLayout } from "types/app"; // constants import { PAGE_TABS_LIST } from "constants/page"; const AllPagesList = dynamic(() => import("components/pages").then((a) => a.AllPagesList), { ssr: false, }); const FavoritePagesList = dynamic(() => import("components/pages").then((a) => a.FavoritePagesList), { ssr: false, }); const PrivatePagesList = dynamic(() => import("components/pages").then((a) => a.PrivatePagesList), { ssr: false, }); const ArchivedPagesList = dynamic(() => import("components/pages").then((a) => a.ArchivedPagesList), { ssr: false, }); const SharedPagesList = dynamic(() => import("components/pages").then((a) => a.SharedPagesList), { ssr: false, }); const ProjectPagesPage: NextPageWithLayout = observer(() => { const router = useRouter(); const { workspaceSlug, projectId } = router.query; // states const [createUpdatePageModal, setCreateUpdatePageModal] = useState(false); // store const { page: { fetchPages, fetchArchivedPages }, } = useMobxStore(); // hooks const {} = useUserAuth(); // local storage const { storedValue: pageTab, setValue: setPageTab } = useLocalStorage("pageTab", "Recent"); // fetching pages from API useSWR( workspaceSlug && projectId ? `ALL_PAGES_LIST_${projectId}` : null, workspaceSlug && projectId ? () => fetchPages(workspaceSlug.toString(), projectId.toString()) : null ); // fetching archived pages from API useSWR( workspaceSlug && projectId ? `ALL_ARCHIVED_PAGES_LIST_${projectId}` : null, workspaceSlug && projectId ? () => fetchArchivedPages(workspaceSlug.toString(), projectId.toString()) : null ); const currentTabValue = (tab: string | null) => { switch (tab) { case "Recent": return 0; case "All": return 1; case "Favorites": return 2; case "Private": return 3; case "Shared": return 4; case "Archived": return 5; default: return 0; } }; return ( <> {workspaceSlug && projectId && ( setCreateUpdatePageModal(false)} projectId={projectId.toString()} /> )}

Pages

{ switch (i) { case 0: return setPageTab("Recent"); case 1: return setPageTab("All"); case 2: return setPageTab("Favorites"); case 3: return setPageTab("Private"); case 4: return setPageTab("Shared"); case 5: return setPageTab("Archived"); default: return setPageTab("All"); } }} >
{PAGE_TABS_LIST.map((tab) => ( `rounded-full border px-5 py-1.5 text-sm outline-none ${ selected ? "border-custom-primary bg-custom-primary text-white" : "border-custom-border-200 bg-custom-background-100 hover:bg-custom-background-90" }` } > {tab.title} ))}
); }); ProjectPagesPage.getLayout = function getLayout(page: ReactElement) { return ( } withProjectWrapper> {page} ); }; export default ProjectPagesPage;