UNPKG

rasengan

Version:

The modern React Framework

32 lines (31 loc) 2.18 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import React from 'react'; import { BodyComponent, HeadComponent, RootComponent, ScriptComponent, } from '../../routing/components/template.js'; import { isServerMode, ServerMode } from '../../server/runtime/mode.js'; export const TemplateLayout = ({ StaticRouterComponent, metadata, assets, App, Template, isSpaMode = false, }) => { // inject vite refresh script to avoid "React refresh preamble was not loaded" let viteScripts = _jsx(React.Fragment, {}); let otherScripts = _jsx(React.Fragment, {}); if (isServerMode(process.env.NODE_ENV) && process.env.NODE_ENV === ServerMode.Development) { const refreshScript = ` import RefreshRuntime from "/@react-refresh" RefreshRuntime.injectIntoGlobalHook(window) window.$RefreshReg$ = () => {} window.$RefreshSig$ = () => (type) => type window.__vite_plugin_react_preamble_installed__ = true `; viteScripts = (_jsxs(React.Fragment, { children: [_jsx("script", { type: "module", src: "/@vite/client" }), _jsx("script", { type: "module", dangerouslySetInnerHTML: { __html: refreshScript } })] })); } if (isSpaMode) { otherScripts = (_jsxs(React.Fragment, { children: [_jsx("script", { type: "module", dangerouslySetInnerHTML: { __html: `window.__RASENGAN_SPA_MODE__ = true;`, } }), !assets && (_jsx("script", { type: "module", src: "/src/index", async: true }))] })); } else { otherScripts = (_jsx(React.Fragment, { children: _jsx("script", { type: "module", dangerouslySetInnerHTML: { __html: `window.__RASENGAN_SPA_MODE__ = false;`, } }) })); } return (_jsx(Template, { Head: ({ children }) => (_jsxs(HeadComponent, { metadata: metadata, assets: assets, children: [viteScripts, otherScripts, children] })), Body: ({ children }) => (_jsx(BodyComponent, { asChild: App ? true : false, AppContent: App && _jsx(App, { Component: RootComponent, children: StaticRouterComponent }), children: children })), Script: ({ children }) => _jsx(ScriptComponent, { children: children }) })); };