renderer.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { GlobalConfig } from '@/share/types'
  2. import { reactRenderer } from '@hono/react-renderer'
  3. import { Script, Link } from 'hono-vite-react-stack-node/components'
  4. import process from 'node:process'
  5. // 全局配置常量
  6. const GLOBAL_CONFIG: GlobalConfig = {
  7. OSS_BASE_URL: process.env.OSS_BASE_URL || 'https://oss.d8d.fun',
  8. APP_NAME: process.env.APP_NAME || '多八多Aider',
  9. }
  10. export const renderer = reactRenderer(({ children }) => {
  11. return (
  12. <html>
  13. <head>
  14. <meta charSet="UTF-8" />
  15. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  16. <Script />
  17. <Link href="/src/style.css" rel="stylesheet" />
  18. <script src="https://ai-oss.d8d.fun/umd/vconsole.3.15.1.min.js"></script>
  19. <script dangerouslySetInnerHTML={{ __html: `
  20. const init = () => {
  21. const urlParams = new URLSearchParams(window.location.search);
  22. if (${import.meta.env?.PROD ? "true":"false"} && !urlParams.has('vconsole')) return;
  23. var vConsole = new VConsole({
  24. theme: urlParams.get('vconsole_theme') || 'light',
  25. onReady: function() {
  26. console.log('vConsole is ready');
  27. }
  28. });
  29. }
  30. init();
  31. `}} />
  32. {/* 注入全局配置 */}
  33. <script dangerouslySetInnerHTML={{ __html: `window.CONFIG = ${JSON.stringify(GLOBAL_CONFIG)};` }} />
  34. </head>
  35. <body>{children}</body>
  36. </html>
  37. )
  38. })