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(