diff --git a/plugins/scaffolder-react/alpha-api-report.md b/plugins/scaffolder-react/alpha-api-report.md index ad44cd3707..6633188155 100644 --- a/plugins/scaffolder-react/alpha-api-report.md +++ b/plugins/scaffolder-react/alpha-api-report.md @@ -64,13 +64,17 @@ export type FormProps = Pick< >; // @alpha -export type NextCustomFieldValidator = ( +export type NextCustomFieldValidator< + TFieldReturnValue, + TUiOptions = unknown, +> = ( data: TFieldReturnValue, field: FieldValidation, context: { apiHolder: ApiHolder; formData: JsonObject; schema: JsonObject; + uiSchema?: NextFieldExtensionUiSchema; }, ) => void | Promise; @@ -80,24 +84,29 @@ export interface NextFieldExtensionComponentProps< TUiOptions = {}, > extends PropsWithChildren> { // (undocumented) - uiSchema?: UiSchema & { - 'ui:options'?: TUiOptions & UIOptionsType; - }; + uiSchema?: NextFieldExtensionUiSchema; } // @alpha export type NextFieldExtensionOptions< TFieldReturnValue = unknown, - TInputProps = unknown, + TUiOptions = unknown, > = { name: string; component: ( - props: NextFieldExtensionComponentProps, + props: NextFieldExtensionComponentProps, ) => JSX.Element | null; - validation?: NextCustomFieldValidator; + validation?: NextCustomFieldValidator; schema?: CustomFieldExtensionSchema; }; +// @alpha +export interface NextFieldExtensionUiSchema + extends UiSchema { + // (undocumented) + 'ui:options'?: TUiOptions & UIOptionsType; +} + // @alpha export interface ParsedTemplateSchema { // (undocumented) diff --git a/plugins/scaffolder-react/src/next/extensions/index.tsx b/plugins/scaffolder-react/src/next/extensions/index.tsx index b2d402c93f..784499bbd9 100644 --- a/plugins/scaffolder-react/src/next/extensions/index.tsx +++ b/plugins/scaffolder-react/src/next/extensions/index.tsx @@ -18,6 +18,7 @@ import { NextCustomFieldValidator, NextFieldExtensionOptions, NextFieldExtensionComponentProps, + NextFieldExtensionUiSchema, } from './types'; import { Extension, attachComponentData } from '@backstage/core-plugin-api'; import { UIOptionsType } from '@rjsf/utils'; @@ -55,4 +56,5 @@ export type { NextCustomFieldValidator, NextFieldExtensionOptions, NextFieldExtensionComponentProps, + NextFieldExtensionUiSchema, };