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:
@@ -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
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user