From ea471aaa6e37a085f993b11d683c85b4d72a36b3 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Tue, 22 Oct 2024 12:07:27 -0700 Subject: [PATCH] fix pyi --- reflex/components/component.py | 3 +++ reflex/event.py | 23 ++++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/reflex/components/component.py b/reflex/components/component.py index a0d9c93b0..f7ec4b3f1 100644 --- a/reflex/components/component.py +++ b/reflex/components/component.py @@ -38,6 +38,7 @@ from reflex.constants import ( ) from reflex.constants.compiler import SpecialAttributes from reflex.event import ( + EventCallback, EventChain, EventChainVar, EventHandler, @@ -1126,6 +1127,8 @@ class Component(BaseComponent, ABC): for trigger in self.event_triggers.values(): if isinstance(trigger, EventChain): for event in trigger.events: + if isinstance(event, EventCallback): + continue if isinstance(event, EventSpec): if event.handler.state_full_name: return True diff --git a/reflex/event.py b/reflex/event.py index 6131cf138..8b75fc01f 100644 --- a/reflex/event.py +++ b/reflex/event.py @@ -16,6 +16,7 @@ from typing import ( Generic, List, Optional, + Sequence, Tuple, Type, TypeVar, @@ -389,7 +390,9 @@ class CallableEventSpec(EventSpec): class EventChain(EventActionsMixin): """Container for a chain of events that will be executed in order.""" - events: List[Union[EventSpec, EventVar]] = dataclasses.field(default_factory=list) + events: Sequence[Union[EventSpec, EventVar, EventCallback]] = dataclasses.field( + default_factory=list + ) args_spec: Optional[Callable] = dataclasses.field(default=None) @@ -1468,6 +1471,24 @@ if sys.version_info >= (3, 10): """ self.func = func + @property + def prevent_default(self): + """Prevent default behavior. + + Returns: + The event callback with prevent default behavior. + """ + return self + + @property + def stop_propagation(self): + """Stop event propagation. + + Returns: + The event callback with stop propagation behavior. + """ + return self + @overload def __call__( self: EventCallback[Concatenate[V, Q], T], value: V | Var[V]