Include emotion inside of dynamic components (#4052)

* bundle chakra in window for CSR

* remove repeated chakra ui reference

* use dynamically generated libraries

* remove js from it

* include emotion react for dynamic components

* make code more readable

Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>

* jsx yea

* what

---------

Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>
This commit is contained in:
Khaleel Al-Adhami 2024-10-03 15:58:42 -07:00 committed by GitHub
parent 0f8630fb2d
commit fafdeb892e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -26,7 +26,11 @@ def get_cdn_url(lib: str) -> str:
return f"https://cdn.jsdelivr.net/npm/{lib}" + "/+esm"
bundled_libraries = {"react", "@radix-ui/themes"}
bundled_libraries = {
"react",
"@radix-ui/themes",
"@emotion/react",
}
def bundle_library(component: "Component"):
@ -127,7 +131,14 @@ def load_dynamic_serializer():
module_code_lines.insert(0, "const React = window.__reflex.react;")
return "//__reflex_evaluate\n" + "\n".join(module_code_lines)
return "\n".join(
[
"//__reflex_evaluate",
"/** @jsx jsx */",
"const { jsx } = window.__reflex['@emotion/react']",
*module_code_lines,
]
)
@transform
def evaluate_component(js_string: Var[str]) -> Var[Component]: