Skip to content

Commit 8fe368e

Browse files
committed
simplify render hooks
1 parent 302782b commit 8fe368e

File tree

1 file changed

+17
-28
lines changed

1 file changed

+17
-28
lines changed

reflex/compiler/templates.py

Lines changed: 17 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
from reflex.components.component import Component, StatefulComponent
1717

1818

19-
def _sort_hooks(hooks: dict[str, VarData | None]):
19+
def _sort_hooks(
20+
hooks: dict[str, VarData | None],
21+
) -> tuple[list[str], list[str], list[str]]:
2022
"""Sort the hooks by their position.
2123
2224
Args:
@@ -25,28 +27,26 @@ def _sort_hooks(hooks: dict[str, VarData | None]):
2527
Returns:
2628
The sorted hooks.
2729
"""
28-
sorted_hooks = {
29-
Hooks.HookPosition.INTERNAL: [],
30-
Hooks.HookPosition.PRE_TRIGGER: [],
31-
Hooks.HookPosition.POST_TRIGGER: [],
32-
}
30+
internal_hooks = []
31+
pre_trigger_hooks = []
32+
post_trigger_hooks = []
3333

3434
for hook, data in hooks.items():
3535
if data and data.position and data.position == Hooks.HookPosition.INTERNAL:
36-
sorted_hooks[Hooks.HookPosition.INTERNAL].append((hook, data))
36+
internal_hooks.append(hook)
3737
elif not data or (
3838
not data.position
3939
or data.position == constants.Hooks.HookPosition.PRE_TRIGGER
4040
):
41-
sorted_hooks[Hooks.HookPosition.PRE_TRIGGER].append((hook, data))
41+
pre_trigger_hooks.append(hook)
4242
elif (
4343
data
4444
and data.position
4545
and data.position == constants.Hooks.HookPosition.POST_TRIGGER
4646
):
47-
sorted_hooks[Hooks.HookPosition.POST_TRIGGER].append((hook, data))
47+
post_trigger_hooks.append(hook)
4848

49-
return sorted_hooks
49+
return internal_hooks, pre_trigger_hooks, post_trigger_hooks
5050

5151

5252
class _RenderUtils:
@@ -705,7 +705,7 @@ def styles_template(stylesheets: list[str]) -> str:
705705
)
706706

707707

708-
def _render_hooks(hooks: dict, memo: list | None = None) -> str:
708+
def _render_hooks(hooks: dict[str, VarData | None], memo: list | None = None) -> str:
709709
"""Render hooks for macros.
710710
711711
Args:
@@ -715,20 +715,9 @@ def _render_hooks(hooks: dict, memo: list | None = None) -> str:
715715
Returns:
716716
Rendered hooks code as string.
717717
"""
718-
sorted_hooks = _sort_hooks(hooks)
719-
hooks_code = ""
720-
721-
for hook, _ in sorted_hooks.get(constants.Hooks.HookPosition.INTERNAL, []):
722-
hooks_code += f" {hook}\n"
723-
724-
for hook, _ in sorted_hooks.get(constants.Hooks.HookPosition.PRE_TRIGGER, []):
725-
hooks_code += f" {hook}\n"
726-
727-
if memo:
728-
for hook in memo:
729-
hooks_code += f" {hook}\n"
730-
731-
for hook, _ in sorted_hooks.get(constants.Hooks.HookPosition.POST_TRIGGER, []):
732-
hooks_code += f" {hook}\n"
733-
734-
return hooks_code
718+
internal, pre_trigger, post_trigger = _sort_hooks(hooks)
719+
internal_str = "\n".join(internal)
720+
pre_trigger_str = "\n".join(pre_trigger)
721+
post_trigger_str = "\n".join(post_trigger)
722+
memo_str = "\n".join(memo) if memo is not None else ""
723+
return f"{internal_str}\n{pre_trigger_str}\n{memo_str}\n{post_trigger_str}"

0 commit comments

Comments
 (0)