Preserve template property order in review.

Signed-off-by: Matt Benson <gudnabrsam@gmail.com>
This commit is contained in:
Matt Benson
2023-01-31 08:09:45 -06:00
parent 8461b0db32
commit bd735f6fd4
@@ -25,36 +25,38 @@ export function getReviewData(
uiSchemas: UiSchema[],
) {
const reviewData: Record<string, any> = {};
for (const key in formData) {
if (formData.hasOwnProperty(key)) {
const uiSchema = uiSchemas.find(us => us.name === key);
const orderedReviewProperties = new Set(
uiSchemas.map(us => us.name).concat(Object.getOwnPropertyNames(formData)),
);
if (!uiSchema) {
reviewData[key] = formData[key];
continue;
}
for (const key of orderedReviewProperties) {
const uiSchema = uiSchemas.find(us => us.name === key);
if (uiSchema['ui:widget'] === 'password') {
reviewData[key] = '******';
continue;
}
if (!uiSchema['ui:backstage'] || !uiSchema['ui:backstage'].review) {
reviewData[key] = formData[key];
continue;
}
const review = uiSchema['ui:backstage'].review as JsonObject;
if (review.mask) {
reviewData[key] = review.mask;
continue;
}
if (!review.show) {
continue;
}
if (!uiSchema) {
reviewData[key] = formData[key];
continue;
}
if (uiSchema['ui:widget'] === 'password') {
reviewData[key] = '******';
continue;
}
if (!uiSchema['ui:backstage'] || !uiSchema['ui:backstage'].review) {
reviewData[key] = formData[key];
continue;
}
const review = uiSchema['ui:backstage'].review as JsonObject;
if (review.mask) {
reviewData[key] = review.mask;
continue;
}
if (!review.show) {
continue;
}
reviewData[key] = formData[key];
}
return reviewData;