Skip to content

Commit 85af94b

Browse files
Lendemoradhami3310
andauthored
pass pointer info for on_click, on_double_click, and on_context_menu (#5391)
* pass pointer info for on_click, on_double_click, and on_context_menu * fix type * try lrucache * remove unneeded .to() * test remove future * on_click now allow args, so switch to another noargspec event * fix pyi maybe * fix pyi for real * precommit * do not compute arg spec in check fn match arg spec * make parse_args_spec return type annotations * make inspect.signature get called less * we could store it per guy * attach value to object * fix dill * use typeddict from extensions * fix pyi hashes * fix pyi hashes once again --------- Co-authored-by: Khaleel Al-Adhami <khaleel.aladhami@gmail.com>
1 parent 542ee70 commit 85af94b

File tree

7 files changed

+345
-229
lines changed

7 files changed

+345
-229
lines changed

pyi_hashes.json

Lines changed: 109 additions & 109 deletions
Large diffs are not rendered by default.

reflex/components/component.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
EventSpec,
5353
no_args_event_spec,
5454
parse_args_spec,
55+
pointer_event_spec,
5556
run_script,
5657
unwrap_var_annotation,
5758
)
@@ -491,12 +492,12 @@ def _components_from(
491492
return ()
492493

493494

494-
DEFAULT_TRIGGERS: dict[str, types.ArgsSpec | Sequence[types.ArgsSpec]] = {
495+
DEFAULT_TRIGGERS: Mapping[str, types.ArgsSpec | Sequence[types.ArgsSpec]] = {
495496
EventTriggers.ON_FOCUS: no_args_event_spec,
496497
EventTriggers.ON_BLUR: no_args_event_spec,
497-
EventTriggers.ON_CLICK: no_args_event_spec,
498-
EventTriggers.ON_CONTEXT_MENU: no_args_event_spec,
499-
EventTriggers.ON_DOUBLE_CLICK: no_args_event_spec,
498+
EventTriggers.ON_CLICK: pointer_event_spec, # pyright: ignore [reportAssignmentType]
499+
EventTriggers.ON_CONTEXT_MENU: pointer_event_spec, # pyright: ignore [reportAssignmentType]
500+
EventTriggers.ON_DOUBLE_CLICK: pointer_event_spec, # pyright: ignore [reportAssignmentType]
500501
EventTriggers.ON_MOUSE_DOWN: no_args_event_spec,
501502
EventTriggers.ON_MOUSE_ENTER: no_args_event_spec,
502503
EventTriggers.ON_MOUSE_LEAVE: no_args_event_spec,
@@ -884,7 +885,7 @@ def get_event_triggers(cls) -> dict[str, types.ArgsSpec | Sequence[types.ArgsSpe
884885
)
885886
for name, field in cls.get_fields().items()
886887
if field.type_origin is EventHandler
887-
}
888+
} # pyright: ignore [reportOperatorIssue]
888889

889890
def __repr__(self) -> str:
890891
"""Represent the component in React.
@@ -2134,7 +2135,7 @@ def fn(*args):
21342135
annotation=arg._var_type,
21352136
)
21362137
for name, arg in zip(
2137-
names, parse_args_spec(event.args_spec), strict=True
2138+
names, parse_args_spec(event.args_spec)[0], strict=True
21382139
)
21392140
]
21402141
)

reflex/components/core/upload.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,8 @@ def _update_arg_tuple_for_on_drop(cls, arg_value: tuple[Var, Var]):
396396
The updated arg_value tuple when arg is "files", otherwise the original arg_value.
397397
"""
398398
if arg_value[0]._js_expr == "files":
399-
placeholder = parse_args_spec(_on_drop_spec)[0]
399+
placeholders, _ = parse_args_spec(_on_drop_spec)
400+
placeholder = placeholders[0]
400401
return (arg_value[0], placeholder)
401402
return arg_value
402403

0 commit comments

Comments
 (0)