fix(richtext-*): hasMany relationships not populated correctly

This commit is contained in:
Alessio Gravili
2023-10-21 23:58:47 +02:00
parent 863b79348b
commit e197e0316f
2 changed files with 35 additions and 30 deletions

View File

@@ -36,6 +36,7 @@ export const recurseNestedFields = ({
if (field.type === 'relationship') {
if (field.hasMany && Array.isArray(data[field.name])) {
if (Array.isArray(field.relationTo)) {
// polymorphic relationship
data[field.name].forEach(({ relationTo, value }, i) => {
const collection = req.payload.collections[relationTo]
if (collection) {
@@ -99,21 +100,23 @@ export const recurseNestedFields = ({
}
}
if (typeof data[field.name] !== 'undefined' && typeof field.relationTo === 'string') {
const collection = req.payload.collections[field.relationTo]
promises.push(
populate({
id: data[field.name],
collection,
currentDepth,
data,
depth,
field,
key: field.name,
overrideAccess,
req,
showHiddenFields,
}),
)
if (!('hasMany' in field) || !field.hasMany) {
const collection = req.payload.collections[field.relationTo]
promises.push(
populate({
id: data[field.name],
collection,
currentDepth,
data,
depth,
field,
key: field.name,
overrideAccess,
req,
showHiddenFields,
}),
)
}
}
} else if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {
if (fieldAffectsData(field) && typeof data[field.name] === 'object') {

View File

@@ -76,21 +76,23 @@ export const recurseNestedFields = ({
data[field.name]?.value &&
data[field.name]?.relationTo
) {
const collection = req.payload.collections[data[field.name].relationTo]
promises.push(
populate({
id: data[field.name].value,
collection,
currentDepth,
data: data[field.name],
depth,
field,
key: 'value',
overrideAccess,
req,
showHiddenFields,
}),
)
if (!('hasMany' in field) || !field.hasMany) {
const collection = req.payload.collections[data[field.name].relationTo]
promises.push(
populate({
id: data[field.name].value,
collection,
currentDepth,
data: data[field.name],
depth,
field,
key: 'value',
overrideAccess,
req,
showHiddenFields,
}),
)
}
}
}
if (typeof data[field.name] !== 'undefined' && typeof field.relationTo === 'string') {