diff --git a/plugins/scaffolder/src/components/Router.tsx b/plugins/scaffolder/src/components/Router.tsx index 3d7bbcaf5f..3d7badc6e7 100644 --- a/plugins/scaffolder/src/components/Router.tsx +++ b/plugins/scaffolder/src/components/Router.tsx @@ -29,7 +29,11 @@ import { } from '../extensions'; import { useElementFilter } from '@backstage/core-plugin-api'; -export const Router = () => { +type RouterProps = { + renderTemplateCard?: Function | undefined; +}; + +export const Router = ({ renderTemplateCard }: RouterProps) => { const outlet = useOutlet(); const customFieldExtensions = useElementFilter(outlet, elements => @@ -54,7 +58,10 @@ export const Router = () => { return ( - } /> + } + /> } diff --git a/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx b/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx index 859e5bba93..a9b8c1b573 100644 --- a/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx +++ b/plugins/scaffolder/src/components/ScaffolderPage/ScaffolderPage.tsx @@ -46,7 +46,13 @@ const useStyles = makeStyles(theme => ({ }, })); -export const ScaffolderPageContents = () => { +export type ScaffolderPageProps = { + renderTemplateCard: Function | undefined; +}; + +export const ScaffolderPageContents = ({ + renderTemplateCard, +}: ScaffolderPageProps) => { const styles = useStyles(); const registerComponentLink = useRouteRef(registerComponentRouteRef); @@ -87,7 +93,7 @@ export const ScaffolderPageContents = () => {
- +
@@ -95,8 +101,8 @@ export const ScaffolderPageContents = () => { ); }; -export const ScaffolderPage = () => ( +export const ScaffolderPage = ({ renderTemplateCard }: ScaffolderPageProps) => ( - + ); diff --git a/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx b/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx index 009342c379..8fe56d4a5f 100644 --- a/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx +++ b/plugins/scaffolder/src/components/TemplateList/TemplateList.tsx @@ -25,7 +25,11 @@ import { useEntityListProvider } from '@backstage/plugin-catalog-react'; import { Link, Typography } from '@material-ui/core'; import { TemplateCard } from '../TemplateCard'; -export const TemplateList = () => { +export type TemplateListProps = { + renderTemplateCard?: Function | undefined; +}; + +export const TemplateList = ({ renderTemplateCard }: TemplateListProps) => { const { loading, error, entities } = useEntityListProvider(); return ( <> @@ -50,12 +54,16 @@ export const TemplateList = () => { {entities && entities?.length > 0 && - entities.map((template, i) => ( - - ))} + entities.map((template, i) => + renderTemplateCard ? ( + renderTemplateCard(i, template) + ) : ( + + ), + )} );