Switch to using a version number instead of hashing the content

Signed-off-by: Alex Lorenzi <alorenzi@spotify.com>
Signed-off-by: Sydney Achinger <sydneynicoleachinger@spotify.com>
This commit is contained in:
Alex Lorenzi
2024-06-20 13:32:34 -04:00
committed by Sydney Achinger
parent 94778dd4ee
commit dd780ece4f
2 changed files with 11 additions and 14 deletions
+8 -6
View File
@@ -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<TechDocsEntityMetadata>;
shadowRoot?: ShadowRoot;
setShadowRoot: Dispatch<SetStateAction<ShadowRoot | undefined>>;
setShadowRootVersionHash: Dispatch<SetStateAction<string | undefined>>;
shadowRootVersion: number;
incShadowRootVersion: () => void;
title: string;
setTitle: Dispatch<SetStateAction<string>>;
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<ShadowRoot | undefined>(
defaultTechDocsReaderPageValue.shadowRoot,
);
const [, setShadowRootVersionHash] = useState<string | undefined>(
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,
@@ -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.