diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index 22ab288f0d..82dfecfaa5 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -417,6 +417,14 @@ export type ScaffolderTaskStatus = | 'completed' | 'skipped'; +// @public +export interface ScaffolderUseTemplateSecrets { + // @deprecated (undocumented) + setSecret: (input: Record) => void; + // (undocumented) + setSecrets: (input: Record) => void; +} + // @public export const TaskPage: ({ loadingText }: TaskPageProps) => JSX.Element; @@ -443,7 +451,7 @@ export type TemplateListProps = { }> | undefined; group?: { - title?: string; + title?: React_2.ReactNode; titleComponent?: React_2.ReactNode; filter: (entity: Entity) => boolean; }; @@ -465,8 +473,6 @@ export type TemplateParameterSchema = { // @public (undocumented) export const TemplateTypePicker: () => JSX.Element | null; -// Warning: (ae-forgotten-export) The symbol "ScaffolderUseTemplateSecrets" needs to be exported by the entry point index.d.ts -// // @public export const useTemplateSecrets: () => ScaffolderUseTemplateSecrets; diff --git a/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx b/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx index ec5d1272ab..da9f1f74b8 100644 --- a/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx +++ b/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx @@ -55,7 +55,8 @@ export type ScaffolderPageProps = { | ComponentType<{ template: TemplateEntityV1beta2 }> | undefined; groups?: Array<{ - title?: string; + title?: React.ReactNode; + /** @deprcated use title instead as it accepts a string and react component */ titleComponent?: React.ReactNode; filter: (entity: Entity) => boolean; }>; diff --git a/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx b/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx index 40ab2dfcdf..3d9da542de 100644 --- a/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx +++ b/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx @@ -37,7 +37,8 @@ export type TemplateListProps = { | ComponentType<{ template: TemplateEntityV1beta2 }> | undefined; group?: { - title?: string; + title?: React.ReactNode; + /** @deprecated use title instead, can be a string or a react component */ titleComponent?: React.ReactNode; filter: (entity: Entity) => boolean; }; @@ -55,11 +56,24 @@ export const TemplateList = ({ const maybeFilteredEntities = group ? entities.filter(e => group.filter(e)) : entities; - const title = group ? ( - group.titleComponent || - ) : ( - - ); + + const titleComponent: React.ReactNode = (() => { + if (group?.titleComponent) { + // eslint-disable-next-line no-console + console.warn( + 'DEPRECATED: group.titleComponent is now deprecated. Use group.title instead, it can be a string or a react component', + ); + return group?.titleComponent; + } + if (group && group.title) { + if (typeof group.title === 'string') { + return ; + } + return group.title; + } + + return ; + })(); if (group && maybeFilteredEntities.length === 0) { return null; @@ -85,7 +99,7 @@ export const TemplateList = ({ )} - {title} + {titleComponent} {maybeFilteredEntities && maybeFilteredEntities?.length > 0 && diff --git a/plugins/scaffolder/src/components/secrets/SecretsContext.tsx b/plugins/scaffolder/src/components/secrets/SecretsContext.tsx index def05c076c..f0b62f20a1 100644 --- a/plugins/scaffolder/src/components/secrets/SecretsContext.tsx +++ b/plugins/scaffolder/src/components/secrets/SecretsContext.tsx @@ -48,6 +48,10 @@ export const SecretsContextProvider = ({ children }: PropsWithChildren<{}>) => { ); }; +/** + * The return type from the useTemplateSecrets hook. + * @public + */ export interface ScaffolderUseTemplateSecrets { /** @deprecated use setSecrets instead */ setSecret: (input: Record) => void; diff --git a/plugins/scaffolder/src/components/secrets/index.ts b/plugins/scaffolder/src/components/secrets/index.ts index 44adb2a00a..c608834803 100644 --- a/plugins/scaffolder/src/components/secrets/index.ts +++ b/plugins/scaffolder/src/components/secrets/index.ts @@ -14,3 +14,4 @@ * limitations under the License. */ export { useTemplateSecrets } from './SecretsContext'; +export type { ScaffolderUseTemplateSecrets } from './SecretsContext';