From bd735f6fd497cab50b76a48915b3c32528862ca2 Mon Sep 17 00:00:00 2001 From: Matt Benson Date: Tue, 31 Jan 2023 08:09:45 -0600 Subject: [PATCH 1/2] Preserve template property order in review. Signed-off-by: Matt Benson --- .../MultistepJsonForm/ReviewStep.tsx | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/plugins/scaffolder/src/components/MultistepJsonForm/ReviewStep.tsx b/plugins/scaffolder/src/components/MultistepJsonForm/ReviewStep.tsx index 1bcf06eee7..112b96bdf1 100644 --- a/plugins/scaffolder/src/components/MultistepJsonForm/ReviewStep.tsx +++ b/plugins/scaffolder/src/components/MultistepJsonForm/ReviewStep.tsx @@ -25,36 +25,38 @@ export function getReviewData( uiSchemas: UiSchema[], ) { const reviewData: Record = {}; - 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; From 0f0da2f25643fd878e9306eb41087811656e0d0b Mon Sep 17 00:00:00 2001 From: Matt Benson Date: Mon, 30 Jan 2023 16:25:50 -0600 Subject: [PATCH 2/2] add changeset for review property order fix Signed-off-by: Matt Benson --- .changeset/soft-snails-notice.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/soft-snails-notice.md diff --git a/.changeset/soft-snails-notice.md b/.changeset/soft-snails-notice.md new file mode 100644 index 0000000000..ed39ee9591 --- /dev/null +++ b/.changeset/soft-snails-notice.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +Prefer schema ordering of template properties during review content generation.