Skip to content

Commit 4d2e956

Browse files
committed
move Event to types & remove reactpy.Layout
1 parent fbaec93 commit 4d2e956

File tree

9 files changed

+96
-95
lines changed

9 files changed

+96
-95
lines changed

docs/source/about/changelog.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ Unreleased
8282
- :pull:`1281` - Removed ``reactpy.vdom``. Use ``reactpy.Vdom`` instead.
8383
- :pull:`1281` - Removed ``reactpy.core.make_vdom_constructor``. Use ``reactpy.Vdom`` instead.
8484
- :pull:`1281` - Removed ``reactpy.core.custom_vdom_constructor``. Use ``reactpy.Vdom`` instead.
85+
- :pull:`xxxx` - Removed ``reactpy.core.serve.Stop`` exception type.
86+
- :pull:`xxxx` - Removed ``reactpy.Layout`` top-levle export. Use ``reactpy.core.layout.Layout`` instead.
8587

8688
**Fixed**
8789

src/reactpy/__init__.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from reactpy._html import html
33
from reactpy.core import hooks
44
from reactpy.core.component import component
5-
from reactpy.core.events import Event, event
5+
from reactpy.core.events import event
66
from reactpy.core.hooks import (
77
create_context,
88
use_async_effect,
@@ -18,7 +18,6 @@
1818
use_scope,
1919
use_state,
2020
)
21-
from reactpy.core.layout import Layout
2221
from reactpy.core.vdom import Vdom
2322
from reactpy.pyscript.components import pyscript_component
2423
from reactpy.utils import Ref, reactpy_to_string, string_to_reactpy
@@ -27,8 +26,6 @@
2726
__version__ = "2.0.0b4"
2827

2928
__all__ = [
30-
"Event",
31-
"Layout",
3229
"Ref",
3330
"Vdom",
3431
"component",

src/reactpy/core/events.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,18 +73,6 @@ def setup(function: Callable[..., Any]) -> EventHandler:
7373
return setup(function) if function is not None else setup
7474

7575

76-
class Event(dict):
77-
def __getattr__(self, name: str) -> Any:
78-
value = self.get(name)
79-
return Event(value) if isinstance(value, dict) else value
80-
81-
def preventDefault(self) -> None:
82-
"""Prevent the default action of the event."""
83-
84-
def stopPropagation(self) -> None:
85-
"""Stop the event from propagating."""
86-
87-
8876
class EventHandler:
8977
"""Turn a function or coroutine into an event handler
9078

src/reactpy/core/layout.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@
3636
REACTPY_DEBUG,
3737
)
3838
from reactpy.core._life_cycle_hook import LifeCycleHook
39-
from reactpy.core.events import Event
4039
from reactpy.core.vdom import validate_vdom_json
4140
from reactpy.types import (
4241
ComponentType,
4342
Context,
43+
Event,
4444
EventHandlerDict,
4545
Key,
4646
LayoutEventMessage,

src/reactpy/types.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1071,3 +1071,19 @@ def __call__(
10711071
class EllipsisRepr:
10721072
def __repr__(self) -> str:
10731073
return "..."
1074+
1075+
1076+
class Event(dict):
1077+
"""
1078+
A light `dict` wrapper for event data passed to event handler functions.
1079+
"""
1080+
1081+
def __getattr__(self, name: str) -> Any:
1082+
value = self.get(name)
1083+
return Event(value) if isinstance(value, dict) else value
1084+
1085+
def preventDefault(self) -> None:
1086+
"""Prevent the default action of the event."""
1087+
1088+
def stopPropagation(self) -> None:
1089+
"""Stop the event from propagating."""

tests/test_core/test_events.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
import reactpy
44
from reactpy import component, html
55
from reactpy.core.events import (
6-
Event,
76
EventHandler,
87
merge_event_handler_funcs,
98
merge_event_handlers,
109
to_event_handler_function,
1110
)
1211
from reactpy.core.layout import Layout
1312
from reactpy.testing import DisplayFixture, poll
13+
from reactpy.types import Event
1414
from tests.tooling.common import DEFAULT_TYPE_DELAY
1515

1616

@@ -381,7 +381,7 @@ def handler(event: Event):
381381

382382

383383
def test_event_export():
384-
from reactpy import Event
384+
from reactpy.types import Event
385385

386386
assert Event is not None
387387

0 commit comments

Comments
 (0)