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,
|
||||
)
|
||||
from reflex.vars.function import ArgsFunctionOperation, FunctionStringVar
|
||||
from reflex.vars.hooks import HookVar
|
||||
from reflex.vars.number import ternary_operation
|
||||
from reflex.vars.object import ObjectVar
|
||||
from reflex.vars.sequence import LiteralArrayVar
|
||||
@ -1543,10 +1542,6 @@ class Component(BaseComponent, ABC):
|
||||
|
||||
if str(hook) in code:
|
||||
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:
|
||||
code[str(hook)] = var_data
|
||||
|
||||
@ -2253,7 +2248,7 @@ class StatefulComponent(BaseComponent):
|
||||
)
|
||||
# Store the memoized function name and hook code for this 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
|
||||
),
|
||||
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.imports import ImportVar
|
||||
from reflex.vars import get_unique_variable_name
|
||||
from reflex.vars.base import Var
|
||||
from reflex.vars.hooks import HookVar
|
||||
from reflex.vars.base import Var, VarData
|
||||
|
||||
|
||||
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.
|
||||
|
||||
Returns:
|
||||
@ -86,8 +85,13 @@ class Clipboard(Fragment):
|
||||
if isinstance(on_paste, EventChain):
|
||||
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})"
|
||||
|
||||
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_hooks(self) -> list[str | Var]: ...
|
||||
def add_hooks(self) -> list[str | Var[str]]: ...
|
||||
|
||||
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