From caf29c368068616f4e899c7d5dca8e80cb20d774 Mon Sep 17 00:00:00 2001
From: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
Date: Wed, 15 Jan 2025 14:17:58 -0800
Subject: [PATCH] put import at the top of dynamic component evaluation (#4632)

---
 reflex/components/dynamic.py | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/reflex/components/dynamic.py b/reflex/components/dynamic.py
index fbfc55f97..806d610df 100644
--- a/reflex/components/dynamic.py
+++ b/reflex/components/dynamic.py
@@ -136,6 +136,23 @@ def load_dynamic_serializer():
 
         module_code_lines.insert(0, "const React = window.__reflex.react;")
 
+        function_line = next(
+            index
+            for index, line in enumerate(module_code_lines)
+            if line.startswith("export default function")
+        )
+
+        module_code_lines = [
+            line
+            for _, line in sorted(
+                enumerate(module_code_lines),
+                key=lambda x: (
+                    not (x[1].startswith("import ") and x[0] < function_line),
+                    x[0],
+                ),
+            )
+        ]
+
         return "\n".join(
             [
                 "//__reflex_evaluate",