_app.js.jinja2 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. {% extends "web/pages/base_page.js.jinja2" %}
  2. {% from "web/pages/macros.js.jinja2" import renderHooks %}
  3. {% block early_imports %}
  4. import '$/styles/__reflex_global_styles.css'
  5. {% endblock %}
  6. {% block declaration %}
  7. import { EventLoopProvider, StateProvider, defaultColorMode } from "$/utils/context.js";
  8. import { ThemeProvider } from 'next-themes'
  9. {% for library_alias, library_path in window_libraries %}
  10. import * as {{library_alias}} from "{{library_path}}";
  11. {% endfor %}
  12. {% for custom_code in custom_codes %}
  13. {{custom_code}}
  14. {% endfor %}
  15. {% endblock %}
  16. {% block export %}
  17. function AppWrap({children}) {
  18. {{ renderHooks(hooks) }}
  19. return (
  20. {{utils.render(render)}}
  21. )
  22. }
  23. export default function MyApp({ Component, pageProps }) {
  24. React.useEffect(() => {
  25. // Make contexts and state objects available globally for dynamic eval'd components
  26. let windowImports = {
  27. {% for library_alias, library_path in window_libraries %}
  28. "{{library_path}}": {{library_alias}},
  29. {% endfor %}
  30. };
  31. window["__reflex"] = windowImports;
  32. }, []);
  33. return (
  34. jsx(ThemeProvider, {defaultTheme:defaultColorMode,attribute:"class"},
  35. jsx(StateProvider, {},
  36. jsx(EventLoopProvider, {},
  37. jsx(AppWrap, {},
  38. jsx(Component, pageProps)
  39. )
  40. )
  41. )
  42. )
  43. );
  44. }
  45. {% endblock %}