// /** // * This is the entry for static-site-generation(ssg)'s server side render. // * Used in: "ssr mode" // * ("ssr" is used in many places in this project to refer to "ssg". Should have called it ssg mode...) // */ // import React from 'react' // import ReactDOM from 'react-dom/server' // import { StaticRouter } from 'react-router-dom' // import App from '../App' // import { dataCacheCtx } from '../ctx' // import type { PagesLoaded, SSRPlugin } from '../../../clientTypes' // import ssrData from '/@react-pages/ssrData' // export { ssrData } // // put all page data in cache, so that we don't need to load it in ssr // const dataCache: PagesLoaded = ssrData // export function renderToString(url: string, ssrPlugins?: SSRPlugin[]) { // let ssrApp: React.ReactNode = // const extractStyleArr: (() => string)[] = [] // ssrPlugins?.forEach((ssrPlugin) => { // const { app, extractStyle } = ssrPlugin.prepare(ssrApp) // if (extractStyle) extractStyleArr.push(extractStyle) // if (app) ssrApp = app // }) // const contentText = ReactDOM.renderToString(ssrApp) // const styles = extractStyleArr // .map((extractStyle) => { // return extractStyle() // }) // .filter(Boolean) // const styleText = styles.join('\n') // return { // contentText, // styleText, // } // } // function SSRApp({ url }: { url: string }) { // return ( // // // // // // ) // }