;
};
+// @public
+export type LayoutComponent<_TInputProps> = () => null;
+
+// @public
+export interface LayoutOptions {
+ // (undocumented)
+ component: LayoutTemplate
;
+ // (undocumented)
+ name: string;
+}
+
+// @public
+export type LayoutTemplate = FormProps['ObjectFieldTemplate'];
+
// @public
export type ListActionsResponse = Array<{
id: string;
@@ -349,6 +369,9 @@ export interface ScaffolderGetIntegrationsListResponse {
}[];
}
+// @public
+export const ScaffolderLayouts: React.ComponentType;
+
// @public (undocumented)
export type ScaffolderOutputLink = {
title?: string;
diff --git a/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx b/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx
index 43e12ae85f..8c71df67b6 100644
--- a/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx
+++ b/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx
@@ -36,6 +36,7 @@ import { transformSchemaToProps } from './schema';
import { Content, StructuredMetadataTable } from '@backstage/core-components';
import cloneDeep from 'lodash/cloneDeep';
import * as fieldOverrides from './FieldOverrides';
+import { LayoutOptions } from '../../layouts';
const Form = withTheme(MuiTheme);
type Step = {
@@ -55,6 +56,7 @@ type Props = {
widgets?: FormProps['widgets'];
fields?: FormProps['fields'];
finishButtonLabel?: string;
+ layouts: LayoutOptions[];
};
export function getUiSchemasFromSteps(steps: Step[]): UiSchema[] {
@@ -119,6 +121,7 @@ export const MultistepJsonForm = (props: Props) => {
fields,
widgets,
finishButtonLabel,
+ layouts,
} = props;
const [activeStep, setActiveStep] = useState(0);
const [disableButtons, setDisableButtons] = useState(false);
@@ -214,7 +217,7 @@ export const MultistepJsonForm = (props: Props) => {
if (e.errors.length === 0) handleNext();
}}
{...formProps}
- {...transformSchemaToProps(schema)}
+ {...transformSchemaToProps(schema, layouts)}
>