feat: simplifies collection update operation

This commit is contained in:
James
2021-02-27 21:24:19 -05:00
parent 4de5605931
commit e268e25719
3 changed files with 32 additions and 26 deletions

View File

@@ -106,10 +106,33 @@ const traverseFields = (args: Arguments): void => {
if (field.localized && unflattenLocales) {
unflattenLocaleActions.push(() => {
data[field.name] = payload.config.localization.locales.reduce((locales, localeID) => ({
...locales,
[localeID]: localeID === locale ? data[field.name] : docWithLocales?.[field.name]?.[localeID],
}), {});
const localeData = payload.config.localization.locales.reduce((locales, localeID) => {
let valueToSet;
if (localeID === locale) {
if (data[field.name]) {
valueToSet = data[field.name];
} else if (docWithLocales?.[field.name]?.[localeID]) {
valueToSet = docWithLocales?.[field.name]?.[localeID];
}
} else {
valueToSet = docWithLocales?.[field.name]?.[localeID];
}
if (valueToSet) {
return {
...locales,
[localeID]: valueToSet,
};
}
return locales;
}, {});
// If there are locales with data, set the data
if (Object.keys(localeData).length > 0) {
data[field.name] = localeData;
}
});
}