
* add noop event * fix pyi * get it right pyright * why * remove silly events * fix tests * remove semi colon * errors in merging
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from reflex.components.component import Component
|
|
from reflex.event import EventHandler, input_event, no_args_event_spec
|
|
|
|
|
|
# This is a repeat of its namesake in test_component.py.
|
|
def test_custom_component_declare_event_handlers_in_fields():
|
|
class ReferenceComponent(Component):
|
|
def get_event_triggers(self) -> dict[str, Any]:
|
|
"""Test controlled triggers.
|
|
|
|
Returns:
|
|
Test controlled triggers.
|
|
"""
|
|
return {
|
|
**super().get_event_triggers(),
|
|
"on_a": lambda e: [e],
|
|
"on_b": lambda e: [e.target.value],
|
|
"on_c": lambda e: [],
|
|
"on_d": lambda: [],
|
|
}
|
|
|
|
class TestComponent(Component):
|
|
on_a: EventHandler[lambda e0: [e0]]
|
|
on_b: EventHandler[input_event]
|
|
on_c: EventHandler[no_args_event_spec]
|
|
on_d: EventHandler[no_args_event_spec]
|
|
|
|
custom_component = ReferenceComponent.create()
|
|
test_component = TestComponent.create()
|
|
assert (
|
|
custom_component.get_event_triggers().keys()
|
|
== test_component.get_event_triggers().keys()
|
|
)
|