From 8c5a1f08dfdbda3064a7dfd4769d6c24ef99b5cc Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Mon, 15 Jul 2024 14:51:29 -0400 Subject: [PATCH] fix(richtext-*): nested field recursion for named tabs did not work --- .../migrateSlateToLexical/migrateDocumentFieldsRecursively.ts | 4 ++-- .../upgradeLexicalData/upgradeDocumentFieldsRecursively.ts | 4 ++-- packages/richtext-slate/src/data/recurseNestedFields.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/richtext-lexical/src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts b/packages/richtext-lexical/src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts index b698421729..5e2c59c37c 100644 --- a/packages/richtext-lexical/src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts +++ b/packages/richtext-lexical/src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts @@ -1,6 +1,6 @@ import type { Field } from 'payload' -import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType } from 'payload/shared' +import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared' import type { SlateNodeConverter, @@ -40,7 +40,7 @@ export const migrateDocumentFieldsRecursively = ({ } else if (field.type === 'tabs') { field.tabs.forEach((tab) => { found += migrateDocumentFieldsRecursively({ - data, + data: tabHasName(tab) ? data[tab.name] : data, fields: tab.fields, found, }) diff --git a/packages/richtext-lexical/src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts b/packages/richtext-lexical/src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts index c9fa4c646e..28652bced3 100644 --- a/packages/richtext-lexical/src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts +++ b/packages/richtext-lexical/src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts @@ -2,7 +2,7 @@ import type { SerializedEditorState } from 'lexical' import type { Field } from 'payload' import { createHeadlessEditor } from '@lexical/headless' -import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType } from 'payload/shared' +import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared' import type { LexicalRichTextAdapter } from '../../types.js' @@ -38,7 +38,7 @@ export const upgradeDocumentFieldsRecursively = ({ } else if (field.type === 'tabs') { field.tabs.forEach((tab) => { found += upgradeDocumentFieldsRecursively({ - data, + data: tabHasName(tab) ? data[tab.name] : data, fields: tab.fields, found, }) diff --git a/packages/richtext-slate/src/data/recurseNestedFields.ts b/packages/richtext-slate/src/data/recurseNestedFields.ts index cb8f3c0ab1..0de737cf39 100644 --- a/packages/richtext-slate/src/data/recurseNestedFields.ts +++ b/packages/richtext-slate/src/data/recurseNestedFields.ts @@ -1,6 +1,6 @@ import type { Field, PayloadRequest } from 'payload' -import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType } from 'payload/shared' +import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared' import { populate } from './populate.js' import { recurseRichText } from './richTextRelationshipPromise.js' @@ -148,7 +148,7 @@ export const recurseNestedFields = ({ field.tabs.forEach((tab) => { recurseNestedFields({ currentDepth, - data, + data: tabHasName(tab) ? data[tab.name] : data, depth, draft, fields: tab.fields,