remove HookVar and use Var with VarData instead
This commit is contained in:
parent
8c01fdbfdc
commit
ca501e99c6
@ -70,7 +70,6 @@ from reflex.vars.base import (
|
|||||||
cached_property_no_lock,
|
cached_property_no_lock,
|
||||||
)
|
)
|
||||||
from reflex.vars.function import ArgsFunctionOperation, FunctionStringVar
|
from reflex.vars.function import ArgsFunctionOperation, FunctionStringVar
|
||||||
from reflex.vars.hooks import HookVar
|
|
||||||
from reflex.vars.number import ternary_operation
|
from reflex.vars.number import ternary_operation
|
||||||
from reflex.vars.object import ObjectVar
|
from reflex.vars.object import ObjectVar
|
||||||
from reflex.vars.sequence import LiteralArrayVar
|
from reflex.vars.sequence import LiteralArrayVar
|
||||||
@ -1543,10 +1542,6 @@ class Component(BaseComponent, ABC):
|
|||||||
|
|
||||||
if str(hook) in code:
|
if str(hook) in code:
|
||||||
code[str(hook)] = VarData.merge(var_data, code[str(hook)])
|
code[str(hook)] = VarData.merge(var_data, code[str(hook)])
|
||||||
elif isinstance(hook, HookVar):
|
|
||||||
code[str(hook)] = VarData.merge(
|
|
||||||
var_data, VarData(position=hook.position)
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
code[str(hook)] = var_data
|
code[str(hook)] = var_data
|
||||||
|
|
||||||
@ -2253,7 +2248,7 @@ class StatefulComponent(BaseComponent):
|
|||||||
)
|
)
|
||||||
# Store the memoized function name and hook code for this event trigger.
|
# Store the memoized function name and hook code for this event trigger.
|
||||||
trigger_memo[event_trigger] = (
|
trigger_memo[event_trigger] = (
|
||||||
HookVar(_js_expr=memo_name)._replace(
|
Var(_js_expr=memo_name)._replace(
|
||||||
_var_type=EventChain, merge_var_data=memo_var_data
|
_var_type=EventChain, merge_var_data=memo_var_data
|
||||||
),
|
),
|
||||||
f"const {memo_name} = useCallback({rendered_chain}, [{', '.join(var_deps)}])",
|
f"const {memo_name} = useCallback({rendered_chain}, [{', '.join(var_deps)}])",
|
||||||
|
@ -11,8 +11,7 @@ from reflex.event import EventChain, EventHandler, passthrough_event_spec
|
|||||||
from reflex.utils.format import format_prop, wrap
|
from reflex.utils.format import format_prop, wrap
|
||||||
from reflex.utils.imports import ImportVar
|
from reflex.utils.imports import ImportVar
|
||||||
from reflex.vars import get_unique_variable_name
|
from reflex.vars import get_unique_variable_name
|
||||||
from reflex.vars.base import Var
|
from reflex.vars.base import Var, VarData
|
||||||
from reflex.vars.hooks import HookVar
|
|
||||||
|
|
||||||
|
|
||||||
class Clipboard(Fragment):
|
class Clipboard(Fragment):
|
||||||
@ -74,7 +73,7 @@ class Clipboard(Fragment):
|
|||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
def add_hooks(self) -> list[str | Var]:
|
def add_hooks(self) -> list[str | Var[str]]:
|
||||||
"""Add hook to register paste event listener.
|
"""Add hook to register paste event listener.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
@ -86,8 +85,13 @@ class Clipboard(Fragment):
|
|||||||
if isinstance(on_paste, EventChain):
|
if isinstance(on_paste, EventChain):
|
||||||
on_paste = wrap(str(format_prop(on_paste)).strip("{}"), "(")
|
on_paste = wrap(str(format_prop(on_paste)).strip("{}"), "(")
|
||||||
hook_expr = f"usePasteHandler({self.targets!s}, {self.on_paste_event_actions!s}, {on_paste!s})"
|
hook_expr = f"usePasteHandler({self.targets!s}, {self.on_paste_event_actions!s}, {on_paste!s})"
|
||||||
|
|
||||||
return [
|
return [
|
||||||
HookVar.create(hook_expr, _position=Hooks.HookPosition.POST_TRIGGER),
|
Var(
|
||||||
|
hook_expr,
|
||||||
|
_var_type="str",
|
||||||
|
_var_data=VarData(position=Hooks.HookPosition.POST_TRIGGER),
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,6 +71,6 @@ class Clipboard(Fragment):
|
|||||||
...
|
...
|
||||||
|
|
||||||
def add_imports(self) -> dict[str, ImportVar]: ...
|
def add_imports(self) -> dict[str, ImportVar]: ...
|
||||||
def add_hooks(self) -> list[str | Var]: ...
|
def add_hooks(self) -> list[str | Var[str]]: ...
|
||||||
|
|
||||||
clipboard = Clipboard.create
|
clipboard = Clipboard.create
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
"""A module for hooks-related Var."""
|
|
||||||
|
|
||||||
from __future__ import annotations
|
|
||||||
|
|
||||||
import dataclasses
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from reflex.constants import Hooks
|
|
||||||
|
|
||||||
from .base import Var, VarData
|
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass(
|
|
||||||
eq=False,
|
|
||||||
frozen=True,
|
|
||||||
**{"slots": True} if sys.version_info >= (3, 10) else {},
|
|
||||||
)
|
|
||||||
class HookVar(Var):
|
|
||||||
"""A var class for representing a hook."""
|
|
||||||
|
|
||||||
position: Hooks.HookPosition | None = None
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def create(
|
|
||||||
cls,
|
|
||||||
_hook_expr: str,
|
|
||||||
_var_data: VarData | None = None,
|
|
||||||
_position: Hooks.HookPosition | None = None,
|
|
||||||
):
|
|
||||||
"""Create a hook var.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
_hook_expr: The hook expression.
|
|
||||||
_position: The position of the hook in the component.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
The hook var.
|
|
||||||
"""
|
|
||||||
hook_var = cls(
|
|
||||||
_js_expr=_hook_expr,
|
|
||||||
_var_type="str",
|
|
||||||
_var_data=_var_data,
|
|
||||||
position=_position,
|
|
||||||
)
|
|
||||||
# print("HookVar.create", _hook_expr, hook_var.position)
|
|
||||||
return hook_var
|
|
Loading…
Reference in New Issue
Block a user