From dd780ece4f2d1d1a73df0bfde620952bd744068c Mon Sep 17 00:00:00 2001 From: Alex Lorenzi Date: Thu, 20 Jun 2024 13:32:34 -0400 Subject: [PATCH] Switch to using a version number instead of hashing the content Signed-off-by: Alex Lorenzi Signed-off-by: Sydney Achinger --- plugins/techdocs-react/src/context.tsx | 14 ++++++++------ .../TechDocsReaderPageContent.tsx | 11 +++-------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/plugins/techdocs-react/src/context.tsx b/plugins/techdocs-react/src/context.tsx index 7492d4b2a2..29b91bcc09 100644 --- a/plugins/techdocs-react/src/context.tsx +++ b/plugins/techdocs-react/src/context.tsx @@ -25,6 +25,7 @@ import React, { } from 'react'; import useAsync, { AsyncState } from 'react-use/esm/useAsync'; import useAsyncRetry from 'react-use/esm/useAsyncRetry'; +import useCounter from 'react-use/esm/useCounter'; import { CompoundEntityRef, @@ -64,7 +65,8 @@ export type TechDocsReaderPageValue = { entityMetadata: AsyncState; shadowRoot?: ShadowRoot; setShadowRoot: Dispatch>; - setShadowRootVersionHash: Dispatch>; + shadowRootVersion: number; + incShadowRootVersion: () => void; title: string; setTitle: Dispatch>; subtitle: string; @@ -81,7 +83,8 @@ const defaultTechDocsReaderPageValue: TechDocsReaderPageValue = { setTitle: () => {}, setSubtitle: () => {}, setShadowRoot: () => {}, - setShadowRootVersionHash: () => {}, + shadowRootVersion: 0, + incShadowRootVersion: () => {}, metadata: { loading: true }, entityMetadata: { loading: true }, entityRef: { kind: '', name: '', namespace: '' }, @@ -136,9 +139,7 @@ export const TechDocsReaderPageProvider = memo( const [shadowRoot, setShadowRoot] = useState( defaultTechDocsReaderPageValue.shadowRoot, ); - const [, setShadowRootVersionHash] = useState( - undefined, - ); + const [shadowRootVersion, { inc }] = useCounter(0); useEffect(() => { if (shadowRoot && !metadata.value && !metadata.loading) { @@ -158,7 +159,8 @@ export const TechDocsReaderPageProvider = memo( entityMetadata, shadowRoot, setShadowRoot, - setShadowRootVersionHash, + shadowRootVersion, + incShadowRootVersion: inc, title, setTitle, subtitle, diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.tsx index 4a93b98a83..00df73cab3 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.tsx @@ -34,8 +34,6 @@ 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: { @@ -82,7 +80,7 @@ export const TechDocsReaderPageContent = withTechDocsReaderProvider( entityMetadata: { value: entityMetadata, loading: entityMetadataLoading }, entityRef, setShadowRoot, - setShadowRootVersionHash, + incShadowRootVersion, } = useTechDocsReaderPage(); const dom = useTechDocsReaderDom(entityRef); const path = window.location.pathname; @@ -104,16 +102,13 @@ export const TechDocsReaderPageContent = withTechDocsReaderProvider( const handleAppend = useCallback( (newShadowRoot: ShadowRoot) => { - const newShadowRootVersionHash = createHash('sha256') - .update(newShadowRoot.innerHTML) - .digest('hex'); setShadowRoot(newShadowRoot); - setShadowRootVersionHash(newShadowRootVersionHash); + incShadowRootVersion(); if (onReady instanceof Function) { onReady(); } }, - [setShadowRoot, setShadowRootVersionHash, onReady], + [setShadowRoot, incShadowRootVersion, onReady], ); // No entity metadata = 404. Don't render content at all.