allow providing holding text for scaffolder loading

Signed-off-by: Brian Fletcher <brian@roadie.io>
This commit is contained in:
Brian Fletcher
2022-01-31 15:31:52 +00:00
parent 416513b5c4
commit 319f4b79a2
4 changed files with 24 additions and 5 deletions
+5
View File
@@ -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.
+2
View File
@@ -246,7 +246,9 @@ export const ScaffolderFieldExtensions: React_2.ComponentType;
export const ScaffolderPage: ({
TemplateCardComponent,
groups,
loadingHoldingText,
}: {
loadingHoldingText?: string | undefined;
TemplateCardComponent?:
| ComponentType<{
template: TemplateEntityV1beta2;
+10 -2
View File
@@ -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={<TemplatePage customFieldExtensions={fieldExtensions} />}
/>
<Route path="/tasks/:taskId" element={<TaskPage />} />
<Route
path="/tasks/:taskId"
element={<TaskPage loadingHoldingText={loadingHoldingText} />}
/>
<Route path="/actions" element={<ActionsPage />} />
</Routes>
);
@@ -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 &&