Add setShadowRootVersionHash to force shadowRoot to update in provider when version changes.

Signed-off-by: Sydney Achinger <sydneynicoleachinger@spotify.com>
This commit is contained in:
Sydney Achinger
2024-06-19 15:08:27 -04:00
parent 08a6bd7bc4
commit 94778dd4ee
2 changed files with 14 additions and 2 deletions
@@ -34,6 +34,8 @@ import { TechDocsStateIndicator } from '../TechDocsStateIndicator';
import { useTechDocsReaderDom } from './dom';
import { withTechDocsReaderProvider } from '../TechDocsReaderProvider';
import { TechDocsReaderPageContentAddons } from './TechDocsReaderPageContentAddons';
// eslint-disable-next-line no-restricted-imports
import { createHash } from 'crypto';
const useStyles = makeStyles({
search: {
@@ -80,6 +82,7 @@ export const TechDocsReaderPageContent = withTechDocsReaderProvider(
entityMetadata: { value: entityMetadata, loading: entityMetadataLoading },
entityRef,
setShadowRoot,
setShadowRootVersionHash,
} = useTechDocsReaderPage();
const dom = useTechDocsReaderDom(entityRef);
const path = window.location.pathname;
@@ -101,12 +104,16 @@ export const TechDocsReaderPageContent = withTechDocsReaderProvider(
const handleAppend = useCallback(
(newShadowRoot: ShadowRoot) => {
const newShadowRootVersionHash = createHash('sha256')
.update(newShadowRoot.innerHTML)
.digest('hex');
setShadowRoot(newShadowRoot);
setShadowRootVersionHash(newShadowRootVersionHash);
if (onReady instanceof Function) {
onReady();
}
},
[setShadowRoot, onReady],
[setShadowRoot, setShadowRootVersionHash, onReady],
);
// No entity metadata = 404. Don't render content at all.