entry-server.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // @refresh reload
  2. import { createHandler, StartServer } from "@solidjs/start/server"
  3. const statsThemePreloadScript = `;(function () {
  4. var preference = "system"
  5. try {
  6. var stored = localStorage.getItem("opencode:stats-theme")
  7. if (stored === "dark" || stored === "light" || stored === "system") preference = stored
  8. } catch (_) {}
  9. document.documentElement.dataset.statsTheme = preference
  10. if (preference === "system") document.documentElement.style.removeProperty("color-scheme")
  11. else document.documentElement.style.setProperty("color-scheme", preference)
  12. })()`
  13. export default createHandler(
  14. () => (
  15. <StartServer
  16. document={({ assets, children, scripts }) => (
  17. <html lang="en">
  18. <head>
  19. <meta charset="utf-8" />
  20. <meta name="viewport" content="width=device-width, initial-scale=1" />
  21. <script id="stats-theme-preload-script">{statsThemePreloadScript}</script>
  22. {assets}
  23. </head>
  24. <body>
  25. <div id="app">{children}</div>
  26. {scripts}
  27. </body>
  28. </html>
  29. )}
  30. />
  31. ),
  32. {
  33. mode: "async",
  34. },
  35. )