['uiSchema']
+>['ui:ObjectFieldTemplate'];
+
+/**
+ * The type of layouts that is passed to the TemplateForms
+ *
+ * @public
+ */
+export interface LayoutOptions {
+ name: string;
+ component: LayoutTemplate
;
+}
diff --git a/plugins/scaffolder/src/next/Router/Router.test.tsx b/plugins/scaffolder/src/next/Router/Router.test.tsx
index 4e5535be6c..cd77761ca7 100644
--- a/plugins/scaffolder/src/next/Router/Router.test.tsx
+++ b/plugins/scaffolder/src/next/Router/Router.test.tsx
@@ -76,6 +76,7 @@ describe('Router', () => {
expect(FormProps).toEqual({
transformErrors: transformErrorsMock,
noHtml5Validate: true,
+ layouts: [],
});
});
diff --git a/plugins/scaffolder/src/next/Router/Router.tsx b/plugins/scaffolder/src/next/Router/Router.tsx
index 5435c1a210..2cfee1105c 100644
--- a/plugins/scaffolder/src/next/Router/Router.tsx
+++ b/plugins/scaffolder/src/next/Router/Router.tsx
@@ -27,8 +27,8 @@ import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';
import { TemplateGroupFilter } from '../TemplateListPage/TemplateGroups';
import { DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS } from '../../extensions/default';
import { nextSelectedTemplateRouteRef } from '../routes';
-import { type LayoutOptions, LAYOUTS_KEY, LAYOUTS_WRAPPER_KEY } from '../../layouts';
-import type { FormProps } from '../types';
+import { LAYOUTS_KEY, LAYOUTS_WRAPPER_KEY } from '../../layouts';
+import type { FormProps, NextLayoutOptions } from '../types';
/**
* The Props for the Scaffolder Router
@@ -71,7 +71,7 @@ export const Router = (props: PropsWithChildren) => {
.selectByComponentData({
key: LAYOUTS_WRAPPER_KEY,
})
- .findComponentData({
+ .findComponentData({
key: LAYOUTS_KEY,
}),
);
@@ -95,7 +95,7 @@ export const Router = (props: PropsWithChildren) => {
customFieldExtensions={fieldExtensions}
FormProps={{
...props.FormProps,
- layouts: customLayouts
+ layouts: customLayouts,
}}
/>
diff --git a/plugins/scaffolder/src/next/types.ts b/plugins/scaffolder/src/next/types.ts
index 2700137724..0e2d525472 100644
--- a/plugins/scaffolder/src/next/types.ts
+++ b/plugins/scaffolder/src/next/types.ts
@@ -21,7 +21,25 @@
*/
import type { FormProps as SchemaFormProps } from '@rjsf/core-v5';
-import { LayoutOptions } from '../layouts/types';
+
+/**
+ * The field template from \@rjsf/core which is a react component that gets passed \@rjsf/core field related props.
+ *
+ * @public
+ */
+export type NextLayoutTemplate = NonNullable<
+ SchemaFormProps['uiSchema']
+>['ui:ObjectFieldTemplate'];
+
+/**
+ * The type of layouts that is passed to the TemplateForms
+ *
+ * @public
+ */
+export interface NextLayoutOptions {
+ name: string;
+ component: NextLayoutTemplate
;
+}
/**
* Any `@rjsf/core` form properties that are publicly exposed to the `NextScaffolderpage`
@@ -33,5 +51,5 @@ export type FormProps = Pick<
SchemaFormProps,
'transformErrors' | 'noHtml5Validate'
> & {
- layouts?: LayoutOptions[];
+ layouts?: NextLayoutOptions[];
};