diff --git a/plugins/circular-view/src/BaseChordDisplay/components/RpcRenderedSvgGroup.js b/plugins/circular-view/src/BaseChordDisplay/components/RpcRenderedSvgGroup.js index 7f92fac047..46961c005f 100644 --- a/plugins/circular-view/src/BaseChordDisplay/components/RpcRenderedSvgGroup.js +++ b/plugins/circular-view/src/BaseChordDisplay/components/RpcRenderedSvgGroup.js @@ -9,16 +9,14 @@ export default ({ jbrequire }) => { const { data, html, filled, renderProps, renderingComponent } = model const ssrContainerNode = useRef(null) - const hydrated = useRef(false) useEffect(() => { const domNode = ssrContainerNode.current - const isHydrated = hydrated.current function doHydrate() { if (domNode && filled) { - if (domNode && domNode.innerHTML && isHydrated) { + if (domNode && domNode.innerHTML) { domNode.style.display = 'none' - requestIdleCallback(() => unmountComponentAtNode(domNode)) + unmountComponentAtNode(domNode) } domNode.style.display = 'inline' domNode.innerHTML = html @@ -40,6 +38,11 @@ export default ({ jbrequire }) => { } } doHydrate() + return () => { + if (domNode) { + unmountComponentAtNode(domNode) + } + } }) return diff --git a/plugins/dotplot-view/src/ServerSideRenderedContent.tsx b/plugins/dotplot-view/src/ServerSideRenderedContent.tsx index 6fa29e1d2c..d7287e8d8f 100644 --- a/plugins/dotplot-view/src/ServerSideRenderedContent.tsx +++ b/plugins/dotplot-view/src/ServerSideRenderedContent.tsx @@ -54,7 +54,6 @@ class RenderErrorBoundary extends Component<{}, ErrorBoundaryState> { function ServerSideRenderedContent(props: { model: BlockModel }) { const ssrContainerNode = useRef(null) - const hydrated = useRef(false) const { model } = props const session = getSession(model) @@ -62,7 +61,6 @@ function ServerSideRenderedContent(props: { model: BlockModel }) { useEffect(() => { const domNode = ssrContainerNode.current - const isHydrated = hydrated.current function doHydrate() { const { data, @@ -71,7 +69,7 @@ function ServerSideRenderedContent(props: { model: BlockModel }) { renderingComponent: RenderingComponent, } = model if (domNode && model.filled) { - if (isHydrated && domNode) { + if (domNode) { unmountComponentAtNode(domNode) } domNode.innerHTML = html @@ -96,7 +94,6 @@ function ServerSideRenderedContent(props: { model: BlockModel }) { , domNode, ) - hydrated.current = true }, { timeout: 300 }, ) @@ -106,7 +103,7 @@ function ServerSideRenderedContent(props: { model: BlockModel }) { doHydrate() return () => { - if (domNode && isHydrated) { + if (domNode) { unmountComponentAtNode(domNode) } } diff --git a/plugins/linear-genome-view/src/BaseLinearDisplay/components/ServerSideRenderedContent.tsx b/plugins/linear-genome-view/src/BaseLinearDisplay/components/ServerSideRenderedContent.tsx index efd6e3600f..0311d9d310 100644 --- a/plugins/linear-genome-view/src/BaseLinearDisplay/components/ServerSideRenderedContent.tsx +++ b/plugins/linear-genome-view/src/BaseLinearDisplay/components/ServerSideRenderedContent.tsx @@ -10,7 +10,6 @@ import type { BlockModel } from '../models/serverSideRenderedBlock' function ServerSideRenderedContent(props: { model: BlockModel }) { const ssrContainerNode = useRef(null) - const hydrated = useRef(false) const { model } = props const session = getSession(model) @@ -18,7 +17,6 @@ function ServerSideRenderedContent(props: { model: BlockModel }) { useEffect(() => { const domNode = ssrContainerNode.current - const isHydrated = hydrated.current function doHydrate() { const { data, @@ -28,7 +26,7 @@ function ServerSideRenderedContent(props: { model: BlockModel }) { renderingComponent: RenderingComponent, } = model if (domNode && filled) { - if (isHydrated && domNode) { + if (domNode) { unmountComponentAtNode(domNode) } domNode.innerHTML = html @@ -64,7 +62,6 @@ function ServerSideRenderedContent(props: { model: BlockModel }) { , domNode, ) - hydrated.current = true }, { timeout: 300 }, ) @@ -74,7 +71,7 @@ function ServerSideRenderedContent(props: { model: BlockModel }) { doHydrate() return () => { - if (domNode && isHydrated) { + if (domNode) { unmountComponentAtNode(domNode) } }