2025-12-07 19:32:53 +02:00
|
|
|
import React from 'react';
|
2026-04-25 16:56:37 +03:00
|
|
|
import { lazyWithChunkRecovery } from '@/lib/chunkLoadRecovery';
|
2025-12-07 19:32:53 +02:00
|
|
|
|
2026-04-23 02:31:42 -07:00
|
|
|
// Thin lazy wrapper around the heavy MarkdownRenderer implementation.
|
|
|
|
|
// The full implementation (marked, react-markdown, beautiful-mermaid,
|
|
|
|
|
// react-syntax-highlighter, etc.) is loaded on demand, keeping the
|
|
|
|
|
// initial bundle lean.
|
2025-12-15 00:20:26 +02:00
|
|
|
|
2026-04-23 02:31:42 -07:00
|
|
|
export type { MarkdownVariant } from './MarkdownRendererImpl';
|
2026-02-17 18:25:03 +02:00
|
|
|
|
|
|
|
|
|
2026-04-25 16:56:37 +03:00
|
|
|
const MarkdownRendererLazy = lazyWithChunkRecovery(() =>
|
2026-04-23 02:31:42 -07:00
|
|
|
import('./MarkdownRendererImpl').then((m) => ({ default: m.MarkdownRenderer }))
|
|
|
|
|
);
|
2026-03-20 19:11:45 +08:00
|
|
|
|
2026-04-25 16:56:37 +03:00
|
|
|
const SimpleMarkdownRendererLazy = lazyWithChunkRecovery(() =>
|
2026-04-23 02:31:42 -07:00
|
|
|
import('./MarkdownRendererImpl').then((m) => ({ default: m.SimpleMarkdownRenderer }))
|
|
|
|
|
);
|
2026-03-20 19:11:45 +08:00
|
|
|
|
2026-04-23 02:31:42 -07:00
|
|
|
const fallback = <div className="break-words w-full min-w-0" />;
|
2026-03-20 19:11:45 +08:00
|
|
|
|
2026-04-23 02:31:42 -07:00
|
|
|
export const MarkdownRenderer: React.FC<React.ComponentPropsWithoutRef<typeof MarkdownRendererLazy>> = (props) => (
|
|
|
|
|
<React.Suspense fallback={fallback}>
|
|
|
|
|
<MarkdownRendererLazy {...props} />
|
|
|
|
|
</React.Suspense>
|
|
|
|
|
);
|
2026-03-20 19:11:45 +08:00
|
|
|
|
2026-04-23 02:31:42 -07:00
|
|
|
export const SimpleMarkdownRenderer: React.FC<React.ComponentPropsWithoutRef<typeof SimpleMarkdownRendererLazy>> = (props) => (
|
|
|
|
|
<React.Suspense fallback={fallback}>
|
|
|
|
|
<SimpleMarkdownRendererLazy {...props} />
|
|
|
|
|
</React.Suspense>
|
|
|
|
|
);
|