From ea5ba4c89ac712263a6a0cf52a613248ac6beb67 Mon Sep 17 00:00:00 2001 From: Seonglae Cho Date: Tue, 16 Dec 2025 02:44:33 +0900 Subject: [PATCH] chore: reformat context --- packages/nreact/src/context.tsx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/nreact/src/context.tsx b/packages/nreact/src/context.tsx index 34c4f5ac..28546ce9 100644 --- a/packages/nreact/src/context.tsx +++ b/packages/nreact/src/context.tsx @@ -1,6 +1,6 @@ import React from 'react' -import { defaultMapImageUrl, defaultMapPageUrl } from '@texonom/nutils' +import { defaultMapImageUrl, defaultMapPageUrl, parsePageId } from '@texonom/nutils' import { AssetWrapper } from './components/asset-wrapper' import { Checkbox as DefaultCheckbox } from './components/checkbox' @@ -75,7 +75,22 @@ export interface PartialNotionContext { const DefaultLink: React.FC = props => const DefaultLinkMemo = React.memo(DefaultLink) -const DefaultPageLink: React.FC = props => +const DefaultPageLink: React.FC> = ({ href, ...props }) => { + const { recordMap, rootSpaceId } = useNotionContext() + let finalHref = href as string | undefined + + if (typeof href === 'string' && rootSpaceId) { + const pageId = parsePageId(href) + + if (pageId) { + const block = recordMap?.block?.[pageId]?.value + + if (!block || block.space_id !== rootSpaceId) finalHref = `https://notion.so/${pageId.replace(/-/g, '')}` + } + } + + return +} const DefaultPageLinkMemo = React.memo(DefaultPageLink) const DefaultEmbed = props =>