From e8380383a95c7b565cb05186ca4590f1698a1f11 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Tue, 1 Oct 2024 16:37:26 -0700 Subject: [PATCH] get it right pyright --- reflex/components/component.py | 2 +- reflex/event.py | 2 +- reflex/utils/format.py | 14 +------------- tests/units/components/test_component.py | 6 +++--- 4 files changed, 6 insertions(+), 18 deletions(-) diff --git a/reflex/components/component.py b/reflex/components/component.py index 35f10a01d..1169e276f 100644 --- a/reflex/components/component.py +++ b/reflex/components/component.py @@ -577,7 +577,7 @@ class Component(BaseComponent, ABC): if isinstance(result, Var): # Recursively call this function if the lambda returned an EventChain Var. return self._create_event_chain(args_spec, result) - events = result + events = [*result] # Otherwise, raise an error. else: diff --git a/reflex/event.py b/reflex/event.py index bfd285c9d..3f17b4628 100644 --- a/reflex/event.py +++ b/reflex/event.py @@ -488,7 +488,7 @@ class FileUpload: if isinstance(events, Var): raise ValueError(f"{on_upload_progress} cannot return a var {events}.") on_upload_progress_chain = EventChain( - events=events, + events=[*events], args_spec=self.on_upload_progress_args_spec, ) formatted_chain = str(format.format_prop(on_upload_progress_chain)) diff --git a/reflex/utils/format.py b/reflex/utils/format.py index 4029bd275..65c0f049b 100644 --- a/reflex/utils/format.py +++ b/reflex/utils/format.py @@ -359,19 +359,7 @@ def format_prop( # Handle event props. if isinstance(prop, EventChain): - sig = inspect.signature(prop.args_spec) # type: ignore - if sig.parameters: - arg_def = ",".join(f"_{p}" for p in sig.parameters) - arg_def_expr = f"[{arg_def}]" - else: - # add a default argument for addEvents if none were specified in prop.args_spec - # used to trigger the preventDefault() on the event. - arg_def = "...args" - arg_def_expr = "args" - - chain = ",".join([format_event(event) for event in prop.events]) - event = f"addEvents([{chain}], {arg_def_expr}, {json_dumps(prop.event_actions)})" - prop = f"({arg_def}) => {event}" + return str(Var.create(prop)) # Handle other types. elif isinstance(prop, str): diff --git a/tests/units/components/test_component.py b/tests/units/components/test_component.py index 73d3f611b..dc44bcce9 100644 --- a/tests/units/components/test_component.py +++ b/tests/units/components/test_component.py @@ -1178,7 +1178,7 @@ TEST_VAR = LiteralVar.create("test")._replace( ) FORMATTED_TEST_VAR = LiteralVar.create(f"foo{TEST_VAR}bar") STYLE_VAR = TEST_VAR._replace(_js_expr="style") -EVENT_CHAIN_VAR = TEST_VAR._replace(_var_type=EventChain) +EVENT_CHAIN_VAR = TEST_VAR.to(EventChain) ARG_VAR = Var(_js_expr="arg") TEST_VAR_DICT_OF_DICT = LiteralVar.create({"a": {"b": "test"}})._replace( @@ -2159,7 +2159,7 @@ class TriggerState(rx.State): rx.text("random text", on_click=TriggerState.do_something), rx.text( "random text", - on_click=Var(_js_expr="toggleColorMode", _var_type=EventChain), + on_click=Var(_js_expr="toggleColorMode").to(EventChain), ), ), True, @@ -2169,7 +2169,7 @@ class TriggerState(rx.State): rx.text("random text", on_click=rx.console_log("log")), rx.text( "random text", - on_click=Var(_js_expr="toggleColorMode", _var_type=EventChain), + on_click=Var(_js_expr="toggleColorMode").to(EventChain), ), ), False,