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) {
|
for (const field of fields) {
|
||||||
if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {
|
if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {
|
||||||
if (fieldAffectsData(field) && typeof data[field.name] === 'object') {
|
if (fieldAffectsData(field) && typeof data[field.name] === 'object') {
|
||||||
migrateDocumentFieldsRecursively({
|
found += migrateDocumentFieldsRecursively({
|
||||||
data: data[field.name],
|
data: data[field.name],
|
||||||
fields: field.fields,
|
fields: field.fields,
|
||||||
found,
|
found,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
migrateDocumentFieldsRecursively({
|
found += migrateDocumentFieldsRecursively({
|
||||||
data,
|
data,
|
||||||
found,
|
|
||||||
|
|
||||||
fields: field.fields,
|
fields: field.fields,
|
||||||
|
found,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else if (field.type === 'tabs') {
|
} else if (field.type === 'tabs') {
|
||||||
field.tabs.forEach((tab) => {
|
field.tabs.forEach((tab) => {
|
||||||
migrateDocumentFieldsRecursively({
|
found += migrateDocumentFieldsRecursively({
|
||||||
data,
|
data,
|
||||||
found,
|
|
||||||
|
|
||||||
fields: tab.fields,
|
fields: tab.fields,
|
||||||
|
found,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
} else if (Array.isArray(data[field.name])) {
|
} else if (Array.isArray(data[field.name])) {
|
||||||
@@ -52,11 +50,10 @@ export const migrateDocumentFieldsRecursively = ({
|
|||||||
data[field.name].forEach((row, i) => {
|
data[field.name].forEach((row, i) => {
|
||||||
const block = field.blocks.find(({ slug }) => slug === row?.blockType)
|
const block = field.blocks.find(({ slug }) => slug === row?.blockType)
|
||||||
if (block) {
|
if (block) {
|
||||||
migrateDocumentFieldsRecursively({
|
found += migrateDocumentFieldsRecursively({
|
||||||
data: data[field.name][i],
|
data: data[field.name][i],
|
||||||
found,
|
|
||||||
|
|
||||||
fields: block.fields,
|
fields: block.fields,
|
||||||
|
found,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -64,11 +61,10 @@ export const migrateDocumentFieldsRecursively = ({
|
|||||||
|
|
||||||
if (field.type === 'array') {
|
if (field.type === 'array') {
|
||||||
data[field.name].forEach((_, i) => {
|
data[field.name].forEach((_, i) => {
|
||||||
migrateDocumentFieldsRecursively({
|
found += migrateDocumentFieldsRecursively({
|
||||||
data: data[field.name][i],
|
data: data[field.name][i],
|
||||||
found,
|
|
||||||
|
|
||||||
fields: field.fields,
|
fields: field.fields,
|
||||||
|
found,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,26 +23,24 @@ export const upgradeDocumentFieldsRecursively = ({
|
|||||||
for (const field of fields) {
|
for (const field of fields) {
|
||||||
if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {
|
if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {
|
||||||
if (fieldAffectsData(field) && typeof data[field.name] === 'object') {
|
if (fieldAffectsData(field) && typeof data[field.name] === 'object') {
|
||||||
upgradeDocumentFieldsRecursively({
|
found += upgradeDocumentFieldsRecursively({
|
||||||
data: data[field.name],
|
data: data[field.name],
|
||||||
fields: field.fields,
|
fields: field.fields,
|
||||||
found,
|
found,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
upgradeDocumentFieldsRecursively({
|
found += upgradeDocumentFieldsRecursively({
|
||||||
data,
|
data,
|
||||||
found,
|
|
||||||
|
|
||||||
fields: field.fields,
|
fields: field.fields,
|
||||||
|
found,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else if (field.type === 'tabs') {
|
} else if (field.type === 'tabs') {
|
||||||
field.tabs.forEach((tab) => {
|
field.tabs.forEach((tab) => {
|
||||||
upgradeDocumentFieldsRecursively({
|
found += upgradeDocumentFieldsRecursively({
|
||||||
data,
|
data,
|
||||||
found,
|
|
||||||
|
|
||||||
fields: tab.fields,
|
fields: tab.fields,
|
||||||
|
found,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
} else if (Array.isArray(data[field.name])) {
|
} else if (Array.isArray(data[field.name])) {
|
||||||
@@ -50,11 +48,10 @@ export const upgradeDocumentFieldsRecursively = ({
|
|||||||
data[field.name].forEach((row, i) => {
|
data[field.name].forEach((row, i) => {
|
||||||
const block = field.blocks.find(({ slug }) => slug === row?.blockType)
|
const block = field.blocks.find(({ slug }) => slug === row?.blockType)
|
||||||
if (block) {
|
if (block) {
|
||||||
upgradeDocumentFieldsRecursively({
|
found += upgradeDocumentFieldsRecursively({
|
||||||
data: data[field.name][i],
|
data: data[field.name][i],
|
||||||
found,
|
|
||||||
|
|
||||||
fields: block.fields,
|
fields: block.fields,
|
||||||
|
found,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -62,11 +59,10 @@ export const upgradeDocumentFieldsRecursively = ({
|
|||||||
|
|
||||||
if (field.type === 'array') {
|
if (field.type === 'array') {
|
||||||
data[field.name].forEach((_, i) => {
|
data[field.name].forEach((_, i) => {
|
||||||
upgradeDocumentFieldsRecursively({
|
found += upgradeDocumentFieldsRecursively({
|
||||||
data: data[field.name][i],
|
data: data[field.name][i],
|
||||||
found,
|
|
||||||
|
|
||||||
fields: field.fields,
|
fields: field.fields,
|
||||||
|
found,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user