|
1 | 1 | import React from 'react' |
2 | | -import { createRoot as ReactDOMCreateRoot, hydrateRoot } from 'react-dom/client' |
3 | 2 | import { HelmetProvider } from 'react-helmet-async' |
4 | 3 | import type { AnyContext, AnyRouter, LoaderFnContext } from '@tanstack/react-router' |
5 | 4 | import { RouterProvider } from '@tanstack/react-router' |
6 | 5 | import { Meta, StartClient } from '@tanstack/start' |
| 6 | +import { createRoot as ReactDOMCreateRoot, hydrateRoot } from 'react-dom/client' |
| 7 | +import { hydrate, render } from 'react-dom' |
7 | 8 | import type { ViteReactSSGContext as BaseViteReactSSGContext, ViteReactSSGClientOptions } from '../types' |
8 | 9 | import { documentReady } from '../utils/document-ready' |
9 | 10 | import { deserializeState } from '../utils/state' |
@@ -172,24 +173,44 @@ export function Experimental_ViteReactSSG( |
172 | 173 | const { router } = await createRoot(true) |
173 | 174 | const isSSR = document.querySelector('[data-server-rendered=true]') !== null |
174 | 175 | if (!isSSR && process.env.NODE_ENV === 'development') { |
175 | | - const root = ReactDOMCreateRoot(container) |
176 | | - React.startTransition(() => { |
177 | | - root.render( |
| 176 | + if (options.useReact17) { |
| 177 | + render( |
178 | 178 | <HelmetProvider> |
179 | 179 | <RouterProvider router={router} /> |
180 | 180 | </HelmetProvider>, |
| 181 | + container, |
181 | 182 | ) |
182 | | - }) |
| 183 | + } |
| 184 | + else { |
| 185 | + const root = ReactDOMCreateRoot(container) |
| 186 | + React.startTransition(() => { |
| 187 | + root.render( |
| 188 | + <HelmetProvider> |
| 189 | + <RouterProvider router={router} /> |
| 190 | + </HelmetProvider>, |
| 191 | + ) |
| 192 | + }) |
| 193 | + } |
183 | 194 | } |
184 | 195 | else { |
185 | | - React.startTransition(() => { |
186 | | - hydrateRoot( |
187 | | - container, |
| 196 | + if (options.useReact17) { |
| 197 | + hydrate( |
188 | 198 | <HelmetProvider> |
189 | 199 | <StartClient router={router} /> |
190 | 200 | </HelmetProvider>, |
| 201 | + container, |
191 | 202 | ) |
192 | | - }) |
| 203 | + } |
| 204 | + else { |
| 205 | + React.startTransition(() => { |
| 206 | + hydrateRoot( |
| 207 | + container, |
| 208 | + <HelmetProvider> |
| 209 | + <StartClient router={router} /> |
| 210 | + </HelmetProvider>, |
| 211 | + ) |
| 212 | + }) |
| 213 | + } |
193 | 214 | } |
194 | 215 | })() |
195 | 216 | } |
|
0 commit comments