From 19821d3aeb266a5af988c96dedfd0061a163c363 Mon Sep 17 00:00:00 2001
From: Philipinho <16838612+Philipinho@users.noreply.github.com>
Date: Mon, 27 Apr 2026 01:49:54 +0100
Subject: [PATCH] feat(base): page renderer dispatches to base view when
page.isBase
- Add isBase to page repo baseFields so it is always selected
- Add isBase to sidebar pages query select list
- Add isBase to client IPage type
- In PageContent, render when page.isBase
is true instead of the TipTap editor path
---
apps/client/src/features/page/types/page.types.ts | 1 +
apps/client/src/pages/page/page.tsx | 13 +++++++++++++
apps/server/src/core/page/services/page.service.ts | 1 +
apps/server/src/database/repos/page/page.repo.ts | 1 +
4 files changed, 16 insertions(+)
diff --git a/apps/client/src/features/page/types/page.types.ts b/apps/client/src/features/page/types/page.types.ts
index 0bba09ff1..41cf689fa 100644
--- a/apps/client/src/features/page/types/page.types.ts
+++ b/apps/client/src/features/page/types/page.types.ts
@@ -12,6 +12,7 @@ export interface IPage {
spaceId: string;
workspaceId: string;
isLocked: boolean;
+ isBase: boolean;
lastUpdatedById: string;
createdAt: Date;
updatedAt: Date;
diff --git a/apps/client/src/pages/page/page.tsx b/apps/client/src/pages/page/page.tsx
index b4e3baa80..b6b7da3ce 100644
--- a/apps/client/src/pages/page/page.tsx
+++ b/apps/client/src/pages/page/page.tsx
@@ -13,6 +13,7 @@ import { IconAlertTriangle, IconFileOff } from "@tabler/icons-react";
import { Button } from "@mantine/core";
import { Link } from "react-router-dom";
import { ErrorBoundary } from "react-error-boundary";
+import { BaseTable } from "@/features/base/components/base-table";
const MemoizedFullEditor = React.memo(FullEditor);
const MemoizedPageHeader = React.memo(PageHeader);
const MemoizedHistoryModal = React.memo(HistoryModal);
@@ -90,6 +91,18 @@ function PageContent({ pageSlug }: { pageSlug: string | undefined }) {
return <>>;
}
+ if (page?.isBase) {
+ return (
+
+
+ {`${page?.icon || ""} ${page?.title || t("untitled")}`}
+
+
+
+
+ );
+ }
+
return (
page && (
diff --git a/apps/server/src/core/page/services/page.service.ts b/apps/server/src/core/page/services/page.service.ts
index 2f0462f92..244bff8bf 100644
--- a/apps/server/src/core/page/services/page.service.ts
+++ b/apps/server/src/core/page/services/page.service.ts
@@ -289,6 +289,7 @@ export class PageService {
'parentPageId',
'spaceId',
'creatorId',
+ 'isBase',
'deletedAt',
])
.select((eb) => this.pageRepo.withHasChildren(eb))
diff --git a/apps/server/src/database/repos/page/page.repo.ts b/apps/server/src/database/repos/page/page.repo.ts
index a35234f66..30137529c 100644
--- a/apps/server/src/database/repos/page/page.repo.ts
+++ b/apps/server/src/database/repos/page/page.repo.ts
@@ -38,6 +38,7 @@ export class PageRepo {
'spaceId',
'workspaceId',
'isLocked',
+ 'isBase',
'createdAt',
'updatedAt',
'deletedAt',