From 7d98c7c069d65e4e53b70c18246fcef1e6bd11ec Mon Sep 17 00:00:00 2001 From: Philipinho <16838612+Philipinho@users.noreply.github.com> Date: Sun, 14 Jun 2026 15:31:50 +0100 Subject: [PATCH] fix: base trash list handling --- .../src/features/page/queries/page-query.ts | 1 + .../components/trash-page-content-modal.tsx | 14 ++++++++++++- .../features/page/trash/components/trash.tsx | 20 +++++++++---------- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/apps/client/src/features/page/queries/page-query.ts b/apps/client/src/features/page/queries/page-query.ts index 11ba7f32d..1dc4311be 100644 --- a/apps/client/src/features/page/queries/page-query.ts +++ b/apps/client/src/features/page/queries/page-query.ts @@ -193,6 +193,7 @@ export function useRestorePageMutation() { spaceId: restoredPage.spaceId, parentPageId: restoredPage.parentPageId, hasChildren: restoredPage.hasChildren || false, + isBase: restoredPage.isBase, children: [], }; diff --git a/apps/client/src/features/page/trash/components/trash-page-content-modal.tsx b/apps/client/src/features/page/trash/components/trash-page-content-modal.tsx index 842c4257c..6d1a2b4eb 100644 --- a/apps/client/src/features/page/trash/components/trash-page-content-modal.tsx +++ b/apps/client/src/features/page/trash/components/trash-page-content-modal.tsx @@ -1,12 +1,15 @@ import { Modal, Text, ScrollArea } from "@mantine/core"; +import { IconTable } from "@tabler/icons-react"; import { useTranslation } from "react-i18next"; import ReadonlyPageEditor from "@/features/editor/readonly-page-editor.tsx"; +import { EmptyState } from "@/components/ui/empty-state.tsx"; interface Props { opened: boolean; onClose: () => void; pageTitle: string; pageContent: any; + isBase?: boolean; } export default function TrashPageContentModal({ @@ -14,6 +17,7 @@ export default function TrashPageContentModal({ onClose, pageTitle, pageContent, + isBase, }: Props) { const { t } = useTranslation(); const title = pageTitle || t("Untitled"); @@ -32,7 +36,15 @@ export default function TrashPageContentModal({ - + {isBase ? ( + + ) : ( + + )} diff --git a/apps/client/src/features/page/trash/components/trash.tsx b/apps/client/src/features/page/trash/components/trash.tsx index 2b5ca9649..6863e8921 100644 --- a/apps/client/src/features/page/trash/components/trash.tsx +++ b/apps/client/src/features/page/trash/components/trash.tsx @@ -14,7 +14,6 @@ import { IconDots, IconRestore, IconTrash, - IconFileDescription, } from "@tabler/icons-react"; import { TrashBanner } from "@/features/page/trash/components/trash-banner.tsx"; import { @@ -31,6 +30,7 @@ import { UserInfo } from "@/components/common/user-info.tsx"; import Paginate from "@/components/common/paginate.tsx"; import { useCursorPaginate } from "@/hooks/use-cursor-paginate"; import { useRestorePageModal } from "@/features/page/hooks/use-restore-page-modal.tsx"; +import { PageListIcon } from "@/components/common/page-list-icon"; export default function Trash() { const { t } = useTranslation(); @@ -47,6 +47,7 @@ export default function Trash() { const [selectedPage, setSelectedPage] = useState<{ title: string; content: any; + isBase?: boolean; } | null>(null); const [modalOpened, setModalOpened] = useState(false); @@ -79,7 +80,11 @@ export default function Trash() { const hasPages = deletedPages && deletedPages.items.length > 0; const handlePageClick = (page: any) => { - setSelectedPage({ title: page.title, content: page.content }); + setSelectedPage({ + title: page.title, + content: page.content, + isBase: page.isBase, + }); setModalOpened(true); }; @@ -118,15 +123,7 @@ export default function Trash() { style={{ cursor: "pointer" }} onClick={() => handlePageClick(page)} > - {page.icon || ( - - - - )} +
{page.title || t("Untitled")} @@ -207,6 +204,7 @@ export default function Trash() { onClose={() => setModalOpened(false)} pageTitle={selectedPage.title} pageContent={selectedPage.content} + isBase={selectedPage.isBase} /> )}