fix(richtext-lexical): one-line migrators not detecting richText migrations in nested fields
This commit is contained in:
@@ -25,26 +25,24 @@ export const migrateDocumentFieldsRecursively = ({
|
||||
for (const field of fields) {
|
||||
if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {
|
||||
if (fieldAffectsData(field) && typeof data[field.name] === 'object') {
|
||||
migrateDocumentFieldsRecursively({
|
||||
found += migrateDocumentFieldsRecursively({
|
||||
data: data[field.name],
|
||||
fields: field.fields,
|
||||
found,
|
||||
})
|
||||
} else {
|
||||
migrateDocumentFieldsRecursively({
|
||||
found += migrateDocumentFieldsRecursively({
|
||||
data,
|
||||
found,
|
||||
|
||||
fields: field.fields,
|
||||
found,
|
||||
})
|
||||
}
|
||||
} else if (field.type === 'tabs') {
|
||||
field.tabs.forEach((tab) => {
|
||||
migrateDocumentFieldsRecursively({
|
||||
found += migrateDocumentFieldsRecursively({
|
||||
data,
|
||||
found,
|
||||
|
||||
fields: tab.fields,
|
||||
found,
|
||||
})
|
||||
})
|
||||
} else if (Array.isArray(data[field.name])) {
|
||||
@@ -52,11 +50,10 @@ export const migrateDocumentFieldsRecursively = ({
|
||||
data[field.name].forEach((row, i) => {
|
||||
const block = field.blocks.find(({ slug }) => slug === row?.blockType)
|
||||
if (block) {
|
||||
migrateDocumentFieldsRecursively({
|
||||
found += migrateDocumentFieldsRecursively({
|
||||
data: data[field.name][i],
|
||||
found,
|
||||
|
||||
fields: block.fields,
|
||||
found,
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -64,11 +61,10 @@ export const migrateDocumentFieldsRecursively = ({
|
||||
|
||||
if (field.type === 'array') {
|
||||
data[field.name].forEach((_, i) => {
|
||||
migrateDocumentFieldsRecursively({
|
||||
found += migrateDocumentFieldsRecursively({
|
||||
data: data[field.name][i],
|
||||
found,
|
||||
|
||||
fields: field.fields,
|
||||
found,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -23,26 +23,24 @@ export const upgradeDocumentFieldsRecursively = ({
|
||||
for (const field of fields) {
|
||||
if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {
|
||||
if (fieldAffectsData(field) && typeof data[field.name] === 'object') {
|
||||
upgradeDocumentFieldsRecursively({
|
||||
found += upgradeDocumentFieldsRecursively({
|
||||
data: data[field.name],
|
||||
fields: field.fields,
|
||||
found,
|
||||
})
|
||||
} else {
|
||||
upgradeDocumentFieldsRecursively({
|
||||
found += upgradeDocumentFieldsRecursively({
|
||||
data,
|
||||
found,
|
||||
|
||||
fields: field.fields,
|
||||
found,
|
||||
})
|
||||
}
|
||||
} else if (field.type === 'tabs') {
|
||||
field.tabs.forEach((tab) => {
|
||||
upgradeDocumentFieldsRecursively({
|
||||
found += upgradeDocumentFieldsRecursively({
|
||||
data,
|
||||
found,
|
||||
|
||||
fields: tab.fields,
|
||||
found,
|
||||
})
|
||||
})
|
||||
} else if (Array.isArray(data[field.name])) {
|
||||
@@ -50,11 +48,10 @@ export const upgradeDocumentFieldsRecursively = ({
|
||||
data[field.name].forEach((row, i) => {
|
||||
const block = field.blocks.find(({ slug }) => slug === row?.blockType)
|
||||
if (block) {
|
||||
upgradeDocumentFieldsRecursively({
|
||||
found += upgradeDocumentFieldsRecursively({
|
||||
data: data[field.name][i],
|
||||
found,
|
||||
|
||||
fields: block.fields,
|
||||
found,
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -62,11 +59,10 @@ export const upgradeDocumentFieldsRecursively = ({
|
||||
|
||||
if (field.type === 'array') {
|
||||
data[field.name].forEach((_, i) => {
|
||||
upgradeDocumentFieldsRecursively({
|
||||
found += upgradeDocumentFieldsRecursively({
|
||||
data: data[field.name][i],
|
||||
found,
|
||||
|
||||
fields: field.fields,
|
||||
found,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user