15 lines
565 B
TypeScript
15 lines
565 B
TypeScript
import { convertLexicalToHTML, defaultHTMLConverters } from '@payloadcms/richtext-lexical/html';
|
|
import type { SerializedEditorState } from 'lexical';
|
|
|
|
export type LexicalDoc = SerializedEditorState | unknown;
|
|
|
|
export function lexicalToHtml(doc: LexicalDoc): string {
|
|
if (!doc || typeof doc !== 'object') return '';
|
|
const data = doc as SerializedEditorState;
|
|
try {
|
|
return convertLexicalToHTML({ data, converters: defaultHTMLConverters });
|
|
} catch (err) {
|
|
return `<p class="text-error">Failed to render content: ${(err as Error).message}</p>`;
|
|
}
|
|
}
|