diff --git a/apps/app/components/pages/pages-list/all-pages-list.tsx b/apps/app/components/pages/pages-list/all-pages-list.tsx index 8bae35530..67f6135ed 100644 --- a/apps/app/components/pages/pages-list/all-pages-list.tsx +++ b/apps/app/components/pages/pages-list/all-pages-list.tsx @@ -25,9 +25,5 @@ export const AllPagesList: React.FC = ({ viewType }) => { : null ); - return ( -
- -
- ); + return ; }; diff --git a/apps/app/components/pages/pages-list/favorite-pages-list.tsx b/apps/app/components/pages/pages-list/favorite-pages-list.tsx index b846fbb7e..89ba6d293 100644 --- a/apps/app/components/pages/pages-list/favorite-pages-list.tsx +++ b/apps/app/components/pages/pages-list/favorite-pages-list.tsx @@ -25,9 +25,5 @@ export const FavoritePagesList: React.FC = ({ viewType }) => { : null ); - return ( -
- -
- ); + return ; }; diff --git a/apps/app/components/pages/pages-list/my-pages-list.tsx b/apps/app/components/pages/pages-list/my-pages-list.tsx index 832d2a350..d821eb655 100644 --- a/apps/app/components/pages/pages-list/my-pages-list.tsx +++ b/apps/app/components/pages/pages-list/my-pages-list.tsx @@ -25,9 +25,5 @@ export const MyPagesList: React.FC = ({ viewType }) => { : null ); - return ( -
- -
- ); + return ; }; diff --git a/apps/app/components/pages/pages-list/other-pages-list.tsx b/apps/app/components/pages/pages-list/other-pages-list.tsx index b8ab1bdee..dc476408e 100644 --- a/apps/app/components/pages/pages-list/other-pages-list.tsx +++ b/apps/app/components/pages/pages-list/other-pages-list.tsx @@ -25,9 +25,5 @@ export const OtherPagesList: React.FC = ({ viewType }) => { : null ); - return ( -
- -
- ); + return ; }; diff --git a/apps/app/components/pages/pages-list/recent-pages-list.tsx b/apps/app/components/pages/pages-list/recent-pages-list.tsx index 7b162f796..44225aee5 100644 --- a/apps/app/components/pages/pages-list/recent-pages-list.tsx +++ b/apps/app/components/pages/pages-list/recent-pages-list.tsx @@ -37,37 +37,28 @@ export const RecentPagesList: React.FC = ({ viewType }) => { <> {pages ? ( Object.keys(pages).length > 0 && !isEmpty ? ( -
- {Object.keys(pages).map((key) => { - if (pages[key].length === 0) return null; + Object.keys(pages).map((key) => { + if (pages[key].length === 0) return null; - return ( - -
-

- {replaceUnderscoreIfSnakeCase(key)} -

- -
-
- ); - })} -
+ return ( +
+

+ {replaceUnderscoreIfSnakeCase(key)} +

+ +
+ ); + }) ) : ( -
- -
+ ) ) : ( - + diff --git a/apps/app/components/pages/pages-view.tsx b/apps/app/components/pages/pages-view.tsx index 58aa21c07..a1c0d083f 100644 --- a/apps/app/components/pages/pages-view.tsx +++ b/apps/app/components/pages/pages-view.tsx @@ -200,61 +200,63 @@ export const PagesView: React.FC = ({ pages, viewType }) => { data={selectedPageToDelete} /> {pages ? ( - pages.length > 0 ? ( - viewType === "list" ? ( -
    - {pages.map((page) => ( - handleEditPage(page)} - handleDeletePage={() => handleDeletePage(page)} - handleAddToFavorites={() => handleAddToFavorites(page)} - handleRemoveFromFavorites={() => handleRemoveFromFavorites(page)} - partialUpdatePage={partialUpdatePage} - /> - ))} -
- ) : viewType === "detailed" ? ( -
- {pages.map((page) => ( - handleEditPage(page)} - handleDeletePage={() => handleDeletePage(page)} - handleAddToFavorites={() => handleAddToFavorites(page)} - handleRemoveFromFavorites={() => handleRemoveFromFavorites(page)} - partialUpdatePage={partialUpdatePage} - /> - ))} -
+
+ {pages.length > 0 ? ( + viewType === "list" ? ( +
    + {pages.map((page) => ( + handleEditPage(page)} + handleDeletePage={() => handleDeletePage(page)} + handleAddToFavorites={() => handleAddToFavorites(page)} + handleRemoveFromFavorites={() => handleRemoveFromFavorites(page)} + partialUpdatePage={partialUpdatePage} + /> + ))} +
+ ) : viewType === "detailed" ? ( +
+ {pages.map((page) => ( + handleEditPage(page)} + handleDeletePage={() => handleDeletePage(page)} + handleAddToFavorites={() => handleAddToFavorites(page)} + handleRemoveFromFavorites={() => handleRemoveFromFavorites(page)} + partialUpdatePage={partialUpdatePage} + /> + ))} +
+ ) : ( +
+ {pages.map((page) => ( + handleEditPage(page)} + handleDeletePage={() => handleDeletePage(page)} + handleAddToFavorites={() => handleAddToFavorites(page)} + handleRemoveFromFavorites={() => handleRemoveFromFavorites(page)} + partialUpdatePage={partialUpdatePage} + /> + ))} +
+ ) ) : ( -
- {pages.map((page) => ( - handleEditPage(page)} - handleDeletePage={() => handleDeletePage(page)} - handleAddToFavorites={() => handleAddToFavorites(page)} - handleRemoveFromFavorites={() => handleRemoveFromFavorites(page)} - partialUpdatePage={partialUpdatePage} - /> - ))} -
- ) - ) : ( - - ) + + )} +
) : viewType === "list" ? ( diff --git a/apps/app/pages/[workspaceSlug]/projects/[projectId]/pages/index.tsx b/apps/app/pages/[workspaceSlug]/projects/[projectId]/pages/index.tsx index 874057e06..0d5d1252a 100644 --- a/apps/app/pages/[workspaceSlug]/projects/[projectId]/pages/index.tsx +++ b/apps/app/pages/[workspaceSlug]/projects/[projectId]/pages/index.tsx @@ -1,19 +1,15 @@ -import { useState } from "react"; +import { useState, Fragment } from "react"; import { useRouter } from "next/router"; import dynamic from "next/dynamic"; -import useSWR, { mutate } from "swr"; +import useSWR from "swr"; -// react-hook-form -import { useForm } from "react-hook-form"; // headless ui import { Tab } from "@headlessui/react"; // services import projectService from "services/project.service"; -import pagesService from "services/pages.service"; // hooks -import useToast from "hooks/use-toast"; import useLocalStorage from "hooks/use-local-storage"; // icons import { PlusIcon } from "components/icons"; @@ -22,20 +18,15 @@ import { ProjectAuthorizationWrapper } from "layouts/auth-layout"; // components import { RecentPagesList, CreateUpdatePageModal, TPagesListProps } from "components/pages"; // ui -import { Input, PrimaryButton } from "components/ui"; +import { PrimaryButton } from "components/ui"; import { BreadcrumbItem, Breadcrumbs } from "components/breadcrumbs"; // icons import { ListBulletIcon, Squares2X2Icon } from "@heroicons/react/24/outline"; // types -import { IPage, TPageViewProps } from "types"; +import { TPageViewProps } from "types"; import type { NextPage } from "next"; // fetch-keys -import { - ALL_PAGES_LIST, - MY_PAGES_LIST, - PROJECT_DETAILS, - RECENT_PAGES_LIST, -} from "constants/fetch-keys"; +import { PROJECT_DETAILS } from "constants/fetch-keys"; const AllPagesList = dynamic( () => import("components/pages").then((a) => a.AllPagesList), @@ -65,6 +56,8 @@ const OtherPagesList = dynamic( } ); +const tabsList = ["Recent", "All", "Favorites", "Created by me", "Created by others"]; + const ProjectPages: NextPage = () => { const [createUpdatePageModal, setCreateUpdatePageModal] = useState(false); @@ -73,22 +66,8 @@ const ProjectPages: NextPage = () => { const router = useRouter(); const { workspaceSlug, projectId } = router.query; - const { setToastAlert } = useToast(); - const { storedValue: pageTab, setValue: setPageTab } = useLocalStorage("pageTab", "Recent"); - const { - handleSubmit, - register, - watch, - reset, - formState: { isSubmitting }, - } = useForm>({ - defaultValues: { - name: "", - }, - }); - const { data: projectDetails } = useSWR( workspaceSlug && projectId ? PROJECT_DETAILS(projectId as string) : null, workspaceSlug && projectId @@ -96,58 +75,6 @@ const ProjectPages: NextPage = () => { : null ); - const createPage = async (formData: Partial) => { - if (!workspaceSlug || !projectId) return; - - if (formData.name === "") { - setToastAlert({ - type: "error", - title: "Error!", - message: "Page name is required", - }); - return; - } - - await pagesService - .createPage(workspaceSlug as string, projectId as string, formData) - .then((res) => { - setToastAlert({ - type: "success", - title: "Success!", - message: "Page created successfully.", - }); - router.push(`/${workspaceSlug}/projects/${projectId}/pages/${res.id}`); - reset(); - - mutate(RECENT_PAGES_LIST(projectId as string)); - mutate( - MY_PAGES_LIST(projectId as string), - (prevData) => { - if (!prevData) return undefined; - - return [res, ...(prevData as IPage[])]; - }, - false - ); - mutate( - ALL_PAGES_LIST(projectId as string), - (prevData) => { - if (!prevData) return undefined; - - return [res, ...(prevData as IPage[])]; - }, - false - ); - }) - .catch(() => { - setToastAlert({ - type: "error", - title: "Error!", - message: "Page could not be created. Please try again", - }); - }); - }; - const currentTabValue = (tab: string | null) => { switch (tab) { case "Recent": @@ -195,114 +122,85 @@ const ProjectPages: NextPage = () => { } > -
+

Pages

- {/*
- - {watch("name") !== "" && ( - - {isSubmitting ? "Creating..." : "Create"} - - )} -
*/} -
- { - switch (i) { - case 0: - return setPageTab("Recent"); - case 1: - return setPageTab("All"); - case 2: - return setPageTab("Favorites"); - case 3: - return setPageTab("Created by me"); - case 4: - return setPageTab("Created by others"); + { + switch (i) { + case 0: + return setPageTab("Recent"); + case 1: + return setPageTab("All"); + case 2: + return setPageTab("Favorites"); + case 3: + return setPageTab("Created by me"); + case 4: + return setPageTab("Created by others"); - default: - return setPageTab("Recent"); - } - }} - > - -
- {["Recent", "All", "Favorites", "Created by me", "Created by others"].map( - (tab, index) => ( - - `rounded-full border px-5 py-1.5 text-sm outline-none ${ - selected - ? "border-brand-accent bg-brand-accent text-white" - : "border-brand-base bg-brand-base hover:bg-brand-surface-1" - }` - } - > - {tab} - - ) - )} -
-
- - - {/* */} -
-
- - - - - - - - - - - - - - - - - -
-
+ {tab} + + ))} +
+
+ + +
+ + + + + + + + + + + + + + + + + + +