From 493cdc6533ae164954b7f1942fd56f7bd0bd0c8d Mon Sep 17 00:00:00 2001 From: Paul Cowan Date: Wed, 11 Jan 2023 15:29:17 +0000 Subject: [PATCH] run api-report Signed-off-by: Paul Cowan --- plugins/scaffolder-react/api-report.md | 31 ++++++++- .../src/hooks/useCustomLayouts.ts | 4 +- .../src/next/components/Stepper/Stepper.tsx | 2 +- .../next/hooks/useTransformSchemaToProps.ts | 4 +- plugins/scaffolder-react/src/next/index.ts | 3 +- .../src/next/layouts/index.tsx | 4 +- plugins/scaffolder/api-report.md | 69 ++----------------- .../TemplateWizardPage/TemplateWizardPage.tsx | 11 +-- 8 files changed, 45 insertions(+), 83 deletions(-) diff --git a/plugins/scaffolder-react/api-report.md b/plugins/scaffolder-react/api-report.md index 85ba2c937a..cc6a725012 100644 --- a/plugins/scaffolder-react/api-report.md +++ b/plugins/scaffolder-react/api-report.md @@ -116,12 +116,25 @@ export type FieldExtensionOptions< schema?: CustomFieldExtensionSchema; }; -// @alpha +// @public export type FormProps = Pick< FormProps_2, 'transformErrors' | 'noHtml5Validate' >; +// @public +export interface LayoutOptions

{ + // (undocumented) + component: LayoutTemplate

; + // (undocumented) + name: string; +} + +// @public +export type LayoutTemplate = NonNullable< + FormProps_2['uiSchema'] +>['ui:ObjectFieldTemplate']; + // @public export type ListActionsResponse = Array; @@ -346,21 +359,30 @@ export const SecretsContextProvider: ({ }: PropsWithChildren<{}>) => JSX.Element; // @alpha +<<<<<<< HEAD export const Stepper: (stepperProps: StepperProps) => JSX.Element; +======= +export const Stepper: ({ layouts, ...props }: StepperProps) => JSX.Element; +>>>>>>> be504a73cc (run api-report) // @alpha export type StepperProps = { manifest: TemplateParameterSchema; extensions: NextFieldExtensionOptions[]; templateName?: string; - FormProps?: FormProps; initialState?: Record; +<<<<<<< HEAD onCreate: (values: Record) => Promise; components?: { ReviewStateComponent?: (props: ReviewStateProps) => JSX.Element; createButtonText?: ReactNode; reviewButtonText?: ReactNode; }; +======= + onComplete: (values: Record) => Promise; + FormProps?: FormProps; + layouts?: LayoutOptions[]; +>>>>>>> be504a73cc (run api-report) }; // @alpha @@ -422,6 +444,11 @@ export const useCustomFieldExtensions: < outlet: React.ReactNode, ) => TComponentDataType[]; +// @public +export const useCustomLayouts: >( + outlet: React.ReactNode, +) => TComponentDataType[]; + // @alpha export const useFormDataFromQuery: ( initialState?: Record, diff --git a/plugins/scaffolder-react/src/hooks/useCustomLayouts.ts b/plugins/scaffolder-react/src/hooks/useCustomLayouts.ts index f1511cebdb..afcc45cd48 100644 --- a/plugins/scaffolder-react/src/hooks/useCustomLayouts.ts +++ b/plugins/scaffolder-react/src/hooks/useCustomLayouts.ts @@ -15,13 +15,13 @@ */ import { useElementFilter } from '@backstage/core-plugin-api'; import { LAYOUTS_KEY, LAYOUTS_WRAPPER_KEY } from '../next/layouts/keys'; -import { type NextLayoutOptions } from '../next/types'; +import { type LayoutOptions } from '../next/types'; /** * Hook that returns all custom field extensions from the current outlet. * @public */ -export const useCustomLayouts = ( +export const useCustomLayouts = ( outlet: React.ReactNode, ) => { return useElementFilter(outlet, elements => diff --git a/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx b/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx index 5b7c92ea62..362545e8fa 100644 --- a/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx +++ b/plugins/scaffolder-react/src/next/components/Stepper/Stepper.tsx @@ -28,11 +28,11 @@ import React, { useCallback, useMemo, useState, type ReactNode } from 'react'; import { NextFieldExtensionOptions } from '../../extensions'; import { TemplateParameterSchema } from '../../../types'; import { createAsyncValidators } from './createAsyncValidators'; -import type { FormProps, LayoutOptions } from '../../types'; import { ReviewState, type ReviewStateProps } from '../ReviewState'; import { useTemplateSchema } from '../../hooks/useTemplateSchema'; import validator from '@rjsf/validator-ajv6'; import { useFormDataFromQuery } from '../../hooks'; +import type { FormProps, LayoutOptions } from '../../types'; import { useTransformSchemaToProps } from '../../hooks/useTransformSchemaToProps'; const useStyles = makeStyles(theme => ({ diff --git a/plugins/scaffolder-react/src/next/hooks/useTransformSchemaToProps.ts b/plugins/scaffolder-react/src/next/hooks/useTransformSchemaToProps.ts index 8ba48a8803..b7810fb9ca 100644 --- a/plugins/scaffolder-react/src/next/hooks/useTransformSchemaToProps.ts +++ b/plugins/scaffolder-react/src/next/hooks/useTransformSchemaToProps.ts @@ -14,11 +14,11 @@ * limitations under the License. */ import { type ParsedTemplateSchema } from './useTemplateSchema'; -import { type NextLayoutOptions } from '../types'; +import { type LayoutOptions } from '../types'; export const useTransformSchemaToProps = ( step: ParsedTemplateSchema, - layouts: NextLayoutOptions[] = [], + layouts: LayoutOptions[] = [], ): ParsedTemplateSchema => { const objectFieldTemplate = step?.uiSchema['ui:ObjectFieldTemplate'] as | string diff --git a/plugins/scaffolder-react/src/next/index.ts b/plugins/scaffolder-react/src/next/index.ts index ea009ea556..a75aa812d3 100644 --- a/plugins/scaffolder-react/src/next/index.ts +++ b/plugins/scaffolder-react/src/next/index.ts @@ -15,6 +15,7 @@ */ export * from './components'; export * from './extensions'; -export type { FormProps } from './types'; +export * from './types'; export * from './lib'; export * from './hooks'; +export * from './layouts'; diff --git a/plugins/scaffolder-react/src/next/layouts/index.tsx b/plugins/scaffolder-react/src/next/layouts/index.tsx index c0db1256f4..560748af59 100644 --- a/plugins/scaffolder-react/src/next/layouts/index.tsx +++ b/plugins/scaffolder-react/src/next/layouts/index.tsx @@ -1,4 +1,4 @@ -import { NextLayoutOptions } from '../types'; +import { LayoutOptions } from '../types'; import { LAYOUTS_KEY, LAYOUTS_WRAPPER_KEY } from './keys'; /* @@ -26,7 +26,7 @@ export type LayoutComponent<_TInputProps> = () => null; * @public */ export function createScaffolderLayout( - options: NextLayoutOptions, + options: LayoutOptions, ): Extension> { return { expose() { diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index c1eb86d186..a67ce10dec 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -22,7 +22,8 @@ import { FieldExtensionComponentProps as FieldExtensionComponentProps_2 } from ' import { FieldExtensionOptions as FieldExtensionOptions_2 } from '@backstage/plugin-scaffolder-react'; import { FieldValidation } from '@rjsf/core'; import type { FormProps as FormProps_2 } from '@rjsf/core'; -import type { FormProps as FormProps_3 } from '@rjsf/core-v5'; +import { FormProps as FormProps_3 } from '@backstage/plugin-scaffolder-react'; +import type { FormProps as FormProps_4 } from '@rjsf/core-v5'; import { IdentityApi } from '@backstage/core-plugin-api'; import { JsonObject } from '@backstage/types'; import { ListActionsResponse as ListActionsResponse_2 } from '@backstage/plugin-scaffolder-react'; @@ -157,7 +158,7 @@ export interface FieldSchema { // @alpha @deprecated export type FormProps = Pick< - FormProps_3, + FormProps_4, 'transformErrors' | 'noHtml5Validate' >; @@ -195,56 +196,6 @@ export function makeFieldSchemaFromZod< : never >; -<<<<<<< HEAD -======= -// @alpha -export type NextCustomFieldValidator = ( - data: TFieldReturnValue, - field: FieldValidation_2, - context: { - apiHolder: ApiHolder; - formData: JsonObject; - }, -) => void | Promise; - -// @alpha -export interface NextFieldExtensionComponentProps< - TFieldReturnValue, - TUiOptions = {}, -> extends PropsWithChildren> { - // (undocumented) - uiSchema?: UiSchema & { - 'ui:options'?: TUiOptions & UIOptionsType; - }; -} - -// @alpha -export type NextFieldExtensionOptions< - TFieldReturnValue = unknown, - TInputProps = unknown, -> = { - name: string; - component: ( - props: NextFieldExtensionComponentProps, - ) => JSX.Element | null; - validation?: NextCustomFieldValidator; - schema?: CustomFieldExtensionSchema; -}; - -// @alpha -export interface NextLayoutOptions

{ - // (undocumented) - component: NextLayoutTemplate

; - // (undocumented) - name: string; -} - -// @alpha -export type NextLayoutTemplate = NonNullable< - FormProps_3['uiSchema'] ->['ui:ObjectFieldTemplate']; - ->>>>>>> a3e361fbb8 (run api-report) // @alpha (undocumented) export const nextRouteRef: RouteRef; @@ -257,7 +208,7 @@ export type NextRouterProps = { TaskPageComponent?: React_2.ComponentType<{}>; }; groups?: TemplateGroupFilter[]; - FormProps?: FormProps; + FormProps?: FormProps_3; }; // @alpha @@ -576,18 +527,6 @@ export type TemplateParameterSchema = TemplateParameterSchema_2; // @public export const TemplateTypePicker: () => JSX.Element | null; -<<<<<<< HEAD // @public @deprecated (undocumented) export const useTemplateSecrets: () => ScaffolderUseTemplateSecrets_2; -======= -// @public -export const useTemplateSecrets: () => ScaffolderUseTemplateSecrets; -<<<<<<< HEAD - -// Warnings were encountered during analysis: -// -// src/next/types.d.ts:23:5 - (ae-forgotten-export) The symbol "NextLayoutOptions" needs to be exported by the entry point index.d.ts ->>>>>>> 55041019c8 (export NextLayoutOptions) -======= ->>>>>>> a3e361fbb8 (run api-report) ``` diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.tsx index d11ada45b5..56fbbe7132 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.tsx @@ -25,15 +25,10 @@ import { import { scaffolderApiRef, useTemplateSecrets, - type NextFieldExtensionOptions, - Workflow - type NextLayoutOptions, + Workflow, + type LayoutOptions } from '@backstage/plugin-scaffolder-react'; -import useAsync from 'react-use/lib/useAsync'; -import { makeStyles } from '@material-ui/core'; -import { BackstageTheme } from '@backstage/theme'; import { - Stepper, NextFieldExtensionOptions, } from '@backstage/plugin-scaffolder-react'; import { JsonValue } from '@backstage/types'; @@ -41,7 +36,6 @@ import { type FormProps } from '../types'; import { nextRouteRef } from '../routes'; import { scaffolderTaskRouteRef, selectedTemplateRouteRef } from '../../routes'; import { Header, Page } from '@backstage/core-components'; -import type { LayoutOptions } from '../../layouts/types'; export type TemplateWizardPageProps = { customFieldExtensions: NextFieldExtensionOptions[]; @@ -92,6 +86,7 @@ export const TemplateWizardPage = (props: TemplateWizardPageProps) => { onError={onError} extensions={props.customFieldExtensions} FormProps={props.FormProps} + layouts={props.layouts} />