fix: undefined point fields saving as empty object (#2313)

This commit is contained in:
Dan Ribbens
2023-03-13 17:34:51 -04:00
committed by GitHub
parent 39e303add6
commit af164159fb
3 changed files with 88 additions and 1 deletions

View File

@@ -130,6 +130,8 @@ export const promise = async ({
const pointDoc = siblingDoc[field.name] as Record<string, unknown>;
if (Array.isArray(pointDoc?.coordinates) && pointDoc.coordinates.length === 2) {
siblingDoc[field.name] = pointDoc.coordinates;
} else {
siblingDoc[field.name] = undefined;
}
break;

View File

@@ -56,6 +56,21 @@ export const promise = async <T>({
break;
}
case 'point': {
if (Array.isArray(siblingData[field.name])) {
siblingData[field.name] = (siblingData[field.name] as string[]).map((coordinate, i) => {
if (typeof coordinate === 'string') {
const value = siblingData[field.name][i] as string;
const trimmed = value.trim();
return (trimmed.length === 0) ? null : parseFloat(trimmed);
}
return coordinate;
});
}
break;
}
case 'checkbox': {
if (siblingData[field.name] === 'true') siblingData[field.name] = true;
if (siblingData[field.name] === 'false') siblingData[field.name] = false;