Merge pull request #16385 from agentbellnorm/reload-metadata-after-generating-techdocs

Don't fetch metadata until shadow root is available
This commit is contained in:
Fredrik Adelöw
2023-03-17 13:34:22 +01:00
committed by GitHub
2 changed files with 24 additions and 5 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-techdocs-react': patch
---
Fix a bug that caused the header to not render when generating a document for the first time
+19 -5
View File
@@ -21,8 +21,10 @@ import React, {
useState,
memo,
ReactNode,
useEffect,
} from 'react';
import useAsync, { AsyncState } from 'react-use/lib/useAsync';
import useAsyncRetry from 'react-use/lib/useAsyncRetry';
import {
CompoundEntityRef,
@@ -117,14 +119,14 @@ export const TechDocsReaderPageProvider = memo(
const techdocsApi = useApi(techdocsApiRef);
const config = useApi(configApiRef);
const metadata = useAsync(async () => {
return techdocsApi.getTechDocsMetadata(entityRef);
}, [entityRef]);
const entityMetadata = useAsync(async () => {
return techdocsApi.getEntityMetadata(entityRef);
}, [entityRef]);
const metadata = useAsyncRetry(async () => {
return techdocsApi.getTechDocsMetadata(entityRef);
}, [entityRef]);
const [title, setTitle] = useState(defaultTechDocsReaderPageValue.title);
const [subtitle, setSubtitle] = useState(
defaultTechDocsReaderPageValue.subtitle,
@@ -133,7 +135,19 @@ export const TechDocsReaderPageProvider = memo(
defaultTechDocsReaderPageValue.shadowRoot,
);
const value = {
useEffect(() => {
if (shadowRoot && !metadata.value && !metadata.loading) {
metadata.retry();
}
}, [
metadata.value,
metadata.loading,
shadowRoot,
metadata.retry,
metadata,
]);
const value: TechDocsReaderPageValue = {
metadata,
entityRef: toLowercaseEntityRefMaybe(entityRef, config),
entityMetadata,