All files / client hydrateComponents.tsx

0% Statements 0/6
0% Branches 0/6
0% Functions 0/2
0% Lines 0/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15                             
import React from 'react'
import ReactDOM from 'react-dom'
import * as SSR from 'common/ssr'
 
export default () => {
  const getTextContent = (element: HTMLElement | null) => (element ? element.textContent : null)
  const ssrContext = JSON.parse(getTextContent(document.getElementById('ssr-context-hydrate')) || '[]')
 
  for (const { componentId, props } of ssrContext) {
    if (SSR.hasComponent(componentId)) {
      ReactDOM.hydrate(SSR.createElement(componentId, props), document.getElementById(props.id))
    }
  }
}