diff --git a/examples/vite_basic/src/App.tsx b/examples/vite_basic/src/App.tsx
index 4b460b7..c1bc0bd 100644
--- a/examples/vite_basic/src/App.tsx
+++ b/examples/vite_basic/src/App.tsx
@@ -18,11 +18,10 @@ const App = () => {
handleFileChange,
} = useFileLoader(AVAILABLE_FILES[0]);
- console.log("test page ", testPage);
-
- if (testPage) {
- testPage.children = [undefined];
- }
+ // uncomment to trigger error in renderer
+ // if (testPage) {
+ // testPage.children = [undefined];
+ // }
// Get backrefs for the currently selected file
const currentBackrefs = selectedFile?.backrefs || [];
@@ -64,8 +63,6 @@ const App = () => {
);
}
- console.log("showBackrefs ", currentBackrefs);
-
return (
{
return
;
},
}}
+ pageOverride={{
+ pageNum: 1,
+ component:
hehe
,
+ }}
/>
)}
diff --git a/typescript/src/renderer/JsonDocRenderer.tsx b/typescript/src/renderer/JsonDocRenderer.tsx
index e4c4238..723861a 100644
--- a/typescript/src/renderer/JsonDocRenderer.tsx
+++ b/typescript/src/renderer/JsonDocRenderer.tsx
@@ -22,6 +22,10 @@ interface JsonDocRendererProps {
viewJson?: boolean;
backrefs?: Backref[];
onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
+ pageOverride?: {
+ pageNum: number;
+ component: React.ReactNode;
+ };
}
export const JsonDocRenderer = ({
@@ -34,8 +38,8 @@ export const JsonDocRenderer = ({
viewJson = false,
backrefs = [],
onError,
+ pageOverride,
}: JsonDocRendererProps) => {
- console.log("theme: ", theme);
return (
diff --git a/typescript/src/renderer/components/RendererContainer.tsx b/typescript/src/renderer/components/RendererContainer.tsx
index cd5e654..e42bc46 100644
--- a/typescript/src/renderer/components/RendererContainer.tsx
+++ b/typescript/src/renderer/components/RendererContainer.tsx
@@ -24,6 +24,10 @@ interface RendererContainerProps {
resolveImageUrl?: (url: string) => Promise;
viewJson?: boolean;
backrefs?: Backref[];
+ pageOverride?: {
+ pageNum: number;
+ component: React.ReactNode;
+ };
}
export const RendererContainer: React.FC = ({
@@ -34,6 +38,7 @@ export const RendererContainer: React.FC = ({
resolveImageUrl,
viewJson = false,
backrefs = [],
+ pageOverride,
}) => {
// Use the modular hooks for highlight management
const { highlightCount, currentActiveIndex, navigateToHighlight } =
@@ -78,6 +83,30 @@ export const RendererContainer: React.FC = ({
? (page.children[index + 1]?.metadata as any)?.origin?.page_num
: null;
+ // Check if this page should be replaced with override component
+ if (pageOverride && currentPageNum === pageOverride.pageNum) {
+ // Skip rendering blocks for this page and show override instead
+ const isLastBlockOfPage =
+ nextPageNum !== currentPageNum ||
+ index === page.children.length - 1;
+ if (isLastBlockOfPage) {
+ return (
+
+ {pageOverride.component}
+ {/* Still show page delimiter after override */}
+ {!components?.page_delimiter && (
+
+ )}
+ {components?.page_delimiter && (
+
+ )}
+
+ );
+ }
+ // Skip other blocks of the same page
+ return null;
+ }
+
// Show delimiter after the last block of each page
const showPageDelimiter =
currentPageNum &&