import { useParams } from "react-router-dom"; import { usePageQuery } from "@/features/page/queries/page-query"; import { FullEditor } from "@/features/editor/full-editor"; import HistoryModal from "@/features/page-history/components/history-modal"; import { Helmet } from "react-helmet-async"; import PageHeader from "@/features/page/components/header/page-header.tsx"; import { extractPageSlugId } from "@/lib"; import { useGetSpaceBySlugQuery } from "@/features/space/queries/space-query.ts"; import { useSpaceAbility } from "@/features/space/permissions/use-space-ability.ts"; import { SpaceCaslAction, SpaceCaslSubject, } from "@/features/space/permissions/permissions.type.ts"; import { useTranslation } from "react-i18next"; export default function Page() { const { t } = useTranslation(); const { pageSlug } = useParams(); const { data: page, isLoading, isError, error, } = usePageQuery({ pageId: extractPageSlugId(pageSlug) }); const { data: space } = useGetSpaceBySlugQuery(page?.space?.slug); const spaceRules = space?.membership?.permissions; const spaceAbility = useSpaceAbility(spaceRules); if (isLoading) { return <>; } if (isError || !page) { if ([401, 403, 404].includes(error?.["status"])) { return
{t("Page not found")}
; } return
{t("Error fetching page data.")}
; } if (!space) { return <>; } return ( page && (
{`${page?.icon || ""} ${page?.title || t("untitled")}`}
) ); }