From 41402f98a812eebda8143a73c71237c004a2c381 Mon Sep 17 00:00:00 2001 From: snehaljos Date: Mon, 7 Feb 2022 19:21:00 +0530 Subject: [PATCH 1/3] Fixed bug in UI | Fix for issue #9157 Signed-off-by: snehaljos --- .../src/components/TemplatePage/TemplatePage.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx index 852ae3d81c..80fa95a3e3 100644 --- a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx +++ b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx @@ -127,7 +127,12 @@ export const TemplatePage = ({ const query = qs.parse(window.location.search, { ignoreQueryPrefix: true, }); - + const obj = query?.formData; + for (const key in obj) { + if (obj.hasOwnProperty(key)) { + obj[key] = obj[key] === 'true'; + } + } return query.formData ?? {}; }); const handleFormReset = () => setFormState({}); From 1026f12334e9fe5a05a5b475b95459c4daf7eae7 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 8 Feb 2022 14:36:20 +0100 Subject: [PATCH 2/3] chore: fixing a totally different way and arguably a more simpler way. Signed-off-by: blam --- .../scaffolder/src/components/TaskPage/TaskPage.tsx | 4 +++- .../src/components/TemplatePage/TemplatePage.tsx | 11 +++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx b/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx index 4c28caad1b..2f49f40643 100644 --- a/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx +++ b/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx @@ -302,7 +302,9 @@ export const TaskPage = ({ loadingText }: TaskPageProps) => { navigate( generatePath( - `${rootLink()}/templates/:templateName?${qs.stringify({ formData })}`, + `${rootLink()}/templates/:templateName?${qs.stringify({ + formData: JSON.stringify(formData), + })}`, { templateName: taskStream.task!.spec.metadata!.name, }, diff --git a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx index 80fa95a3e3..d30c292053 100644 --- a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx +++ b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.tsx @@ -127,13 +127,12 @@ export const TemplatePage = ({ const query = qs.parse(window.location.search, { ignoreQueryPrefix: true, }); - const obj = query?.formData; - for (const key in obj) { - if (obj.hasOwnProperty(key)) { - obj[key] = obj[key] === 'true'; - } + + try { + return JSON.parse(query.formData as string); + } catch (e) { + return query.formData ?? {}; } - return query.formData ?? {}; }); const handleFormReset = () => setFormState({}); const handleChange = useCallback( From 6458be3307a3564ebb33b3c6f2cb08259e8972e9 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 8 Feb 2022 14:41:10 +0100 Subject: [PATCH 3/3] chore: added changeset Signed-off-by: blam --- .changeset/shiny-radios-deliver.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/shiny-radios-deliver.md diff --git a/.changeset/shiny-radios-deliver.md b/.changeset/shiny-radios-deliver.md new file mode 100644 index 0000000000..3a00a6acc0 --- /dev/null +++ b/.changeset/shiny-radios-deliver.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +Encode the `formData` in the `queryString` using `JSON.stringify` to keep the types in the decoded value