diff --git a/.changeset/smart-boxes-double.md b/.changeset/smart-boxes-double.md
new file mode 100644
index 0000000000..64a2fe9656
--- /dev/null
+++ b/.changeset/smart-boxes-double.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder': patch
+---
+
+The ScaffolderPage can be passed an optional `loadingHoldingText` string. It will replace the Loading text in the scaffolder task page.
diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md
index b77fb5f939..c7a95f177e 100644
--- a/plugins/scaffolder/api-report.md
+++ b/plugins/scaffolder/api-report.md
@@ -246,7 +246,9 @@ export const ScaffolderFieldExtensions: React_2.ComponentType;
export const ScaffolderPage: ({
TemplateCardComponent,
groups,
+ loadingHoldingText,
}: {
+ loadingHoldingText?: string | undefined;
TemplateCardComponent?:
| ComponentType<{
template: TemplateEntityV1beta2;
diff --git a/plugins/scaffolder/src/components/Router.tsx b/plugins/scaffolder/src/components/Router.tsx
index e667c676f2..10a78e1071 100644
--- a/plugins/scaffolder/src/components/Router.tsx
+++ b/plugins/scaffolder/src/components/Router.tsx
@@ -31,6 +31,7 @@ import {
import { useElementFilter } from '@backstage/core-plugin-api';
type RouterProps = {
+ loadingHoldingText?: string;
TemplateCardComponent?:
| ComponentType<{ template: TemplateEntityV1beta2 }>
| undefined;
@@ -41,7 +42,11 @@ type RouterProps = {
}>;
};
-export const Router = ({ TemplateCardComponent, groups }: RouterProps) => {
+export const Router = ({
+ TemplateCardComponent,
+ groups,
+ loadingHoldingText,
+}: RouterProps) => {
const outlet = useOutlet();
const customFieldExtensions = useElementFilter(outlet, elements =>
@@ -79,7 +84,10 @@ export const Router = ({ TemplateCardComponent, groups }: RouterProps) => {
path="/templates/:templateName"
element={}
/>
- } />
+ }
+ />
} />
);
diff --git a/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx b/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx
index 9f5dad2adc..04e303b4f4 100644
--- a/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx
+++ b/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx
@@ -218,7 +218,11 @@ export const TaskStatusStepper = memo(
const hasLinks = ({ entityRef, remoteUrl, links = [] }: TaskOutput): boolean =>
!!(entityRef || remoteUrl || links.length > 0);
-export const TaskPage = () => {
+type TaskPageProps = {
+ loadingHoldingText?: string;
+};
+
+export const TaskPage = ({ loadingHoldingText }: TaskPageProps) => {
const classes = useStyles();
const navigate = useNavigate();
const rootLink = useRouteRef(rootRouteRef);
@@ -256,7 +260,7 @@ export const TaskPage = () => {
const logAsString = useMemo(() => {
if (!currentStepId) {
- return 'Loading...';
+ return loadingHoldingText ? loadingHoldingText : 'Loading...';
}
const log = taskStream.stepLogs[currentStepId];
@@ -264,7 +268,7 @@ export const TaskPage = () => {
return 'Waiting for logs...';
}
return log.join('\n');
- }, [taskStream.stepLogs, currentStepId]);
+ }, [taskStream.stepLogs, currentStepId, loadingHoldingText]);
const taskNotFound =
taskStream.completed === true &&