Compare commits

...

4 Commits

Author SHA1 Message Date
Germán Jabloñski
b1fb0164f4 use ad hoc html converter 2024-09-17 11:26:57 -03:00
Germán Jabloñski
a93b586c8f Merge remote-tracking branch 'origin/beta' into lexical-html 2024-09-16 18:53:45 -03:00
Germán Jabloñski
5d76afbdf2 Merge commit 'd046e0d18f5a2f819da7db29dcb0250e084ba9fe' into lexical-html 2024-09-16 16:10:00 -03:00
Germán Jabloñski
a55f93b2eb save WIP 2024-09-16 14:01:02 -03:00
3 changed files with 37 additions and 6 deletions

View File

@@ -72,6 +72,7 @@ export const LexicalMigrateFields: CollectionConfig = {
],
}),
},
lexicalHTML('lexicalWithLexicalPluginData', { name: 'lexicalWithLexicalPluginData_html' }),
{
name: 'lexicalWithSlateData',
type: 'richText',

View File

@@ -1,12 +1,14 @@
import type {
SerializedBlockNode,
SerializedLinkNode,
SerializedRelationshipNode,
SerializedUploadNode,
} from '@payloadcms/richtext-lexical'
import type { SerializedEditorState, SerializedParagraphNode } from 'lexical'
import type { PaginatedDocs, Payload } from 'payload'
import {
consolidateHTMLConverters,
convertLexicalToHTML,
type SerializedBlockNode,
type SerializedLinkNode,
type SerializedRelationshipNode,
type SerializedUploadNode,
} from '@payloadcms/richtext-lexical'
import path from 'path'
import { fileURLToPath } from 'url'
@@ -339,6 +341,33 @@ describe('Lexical', () => {
expect(htmlField1).toStrictEqual('<p>array 1</p>')
expect(htmlField2).toStrictEqual('<p>array 2</p>')
})
it('htmlConverter: should output correct HTML for lexical field nested in blocks', async () => {
const lexicalDoc: LexicalMigrateField = (
await payload.find({
collection: lexicalMigrateFieldsSlug,
depth: 0,
where: {
title: {
equals: lexicalMigrateDocData.title,
},
},
})
).docs[0] as never
const field = payload.config.collections
.find((collection) => collection.slug === lexicalMigrateFieldsSlug)
// @ts-ignore
.fields.find((field) => field.name === 'lexicalWithLexicalPluginData')
// @ts-ignore
const editorConfig = field.editor.editorConfig
const html = await convertLexicalToHTML({
converters: consolidateHTMLConverters({ editorConfig }),
data: lexicalDoc.lexicalWithLexicalPluginData,
})
expect(html).toStrictEqual('<p>lexical plugin</p>')
})
})
describe('advanced - blocks', () => {
it('should not populate relationships in blocks if depth is 0', async () => {

View File

@@ -156,6 +156,7 @@ export interface LexicalMigrateField {
};
[k: string]: unknown;
} | null;
lexicalWithLexicalPluginData_html?: string | null;
lexicalWithSlateData?: {
root: {
type: string;