Nachhilfesystem24/web/src/entry.client.tsx
2024-10-03 17:14:32 +02:00

36 lines
843 B
TypeScript

import { hydrateRoot, createRoot } from 'react-dom/client'
import App from './App'
import Routes from './Routes'
/**
* When `#redwood-app` isn't empty then it's very likely that you're using
* prerendering. So React attaches event listeners to the existing markup
* rather than replacing it.
* https://react.dev/reference/react-dom/client/hydrateRoot
*/
const redwoodAppElement = document.getElementById('redwood-app')
if (!redwoodAppElement) {
throw new Error(
"Could not find an element with ID 'redwood-app'. Please ensure it " +
"exists in your 'web/src/index.html' file."
)
}
if (redwoodAppElement.children?.length > 0) {
hydrateRoot(
redwoodAppElement,
<App>
<Routes />
</App>
)
} else {
const root = createRoot(redwoodAppElement)
root.render(
<App>
<Routes />
</App>
)
}