Skip to content

Commit 55ad5b4

Browse files
committed
use new target key
1 parent e581b15 commit 55ad5b4

File tree

7 files changed

+25
-11
lines changed

7 files changed

+25
-11
lines changed

docs/source/adding-interactivity/_examples/print_chat_message.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ async def handle_submit(event):
2222
html.select(
2323
{
2424
"value": recipient,
25-
"onChange": lambda event: set_recipient(event["value"]),
25+
"onChange": lambda event: set_recipient(event["target"]["value"]),
2626
},
2727
html.option({"value": "Alice"}, "Alice"),
2828
html.option({"value": "Bob"}, "Bob"),
@@ -33,7 +33,7 @@ async def handle_submit(event):
3333
"type": "text",
3434
"placeholder": "Your message...",
3535
"value": message,
36-
"onChange": lambda event: set_message(event["value"]),
36+
"onChange": lambda event: set_message(event["target"]["value"]),
3737
}
3838
),
3939
html.button({"type": "submit"}, "Send"),

docs/source/adding-interactivity/_examples/send_message.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def handle_submit(event):
2525
{
2626
"placeholder": "Your message here...",
2727
"value": message,
28-
"onChange": lambda event: set_message(event["value"]),
28+
"onChange": lambda event: set_message(event["target"]["value"]),
2929
}
3030
),
3131
html.button({"type": "submit"}, "Send"),

docs/source/reference-material/_examples/matplotlib_plot.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def ExpandableNumberInputs(values, set_values):
2525
for i in range(len(values)):
2626

2727
def set_value_at_index(event, index=i):
28-
new_value = float(event["value"] or 0)
28+
new_value = float(event["target"]["value"] or 0)
2929
set_values(values[:index] + [new_value] + values[index + 1 :])
3030

3131
inputs.append(poly_coef_input(i + 1, set_value_at_index))

docs/source/reference-material/_examples/todo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ def Todo():
77

88
async def add_new_task(event):
99
if event["key"] == "Enter":
10-
set_items(items + [event["value"]])
10+
set_items(items + [event["target"]["value"]])
1111

1212
tasks = []
1313

src/idom/core/_event_proxy.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ def _wrap_in_warning_event_proxies(values: Sequence[Any]) -> Sequence[Any]:
77

88

99
class _EventProxy(dict[Any, Any]):
10-
def __getitem__(self, key: Any) -> Any:
10+
def __getitem__(self, key: Any) -> Any: # pragma: no cover
1111
try:
1212
return super().__getitem__(key)
1313
except KeyError:
@@ -16,8 +16,23 @@ def __getitem__(self, key: Any) -> Any:
1616
warn(
1717
f"The event key event[{key!r}] has been moved event['target'][{key!r}",
1818
DeprecationWarning,
19-
stacklevel=1,
19+
stacklevel=2,
2020
)
2121
return target[key]
2222
else:
2323
raise
24+
25+
def get(self, key: Any, default: Any = None) -> Any: # pragma: no cover
26+
try:
27+
return super().__getitem__(key)
28+
except KeyError:
29+
target = self.get("target")
30+
if isinstance(target, dict) and key in target:
31+
warn(
32+
f"The event key event[{key!r}] has been moved event['target'][{key!r}",
33+
DeprecationWarning,
34+
stacklevel=2,
35+
)
36+
return target[key]
37+
else:
38+
return default

src/idom/widgets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def Input(
4949
value, set_value = idom.hooks.use_state(value)
5050

5151
def on_change(event: Dict[str, Any]) -> None:
52-
value = event["value"]
52+
value = event["target"]["value"]
5353
set_value(value)
5454
if not value and ignore_empty:
5555
return

tests/test_core/test_hooks.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,8 +238,8 @@ def Input(message=None):
238238
message_ref.current = message
239239

240240
async def on_change(event):
241-
if event["value"] == "this is a test":
242-
set_message(event["value"])
241+
if event["target"]["value"] == "this is a test":
242+
set_message(event["target"]["value"])
243243

244244
if message is None:
245245
return idom.html.input({"id": "input", "onChange": on_change})
@@ -506,7 +506,6 @@ async def effect():
506506
with idom.Layout(ComponentWithAsyncEffect()) as layout:
507507
await layout.render()
508508

509-
cleanup_ran.wait()
510509
component_hook.latest.schedule_render()
511510

512511
await layout.render()

0 commit comments

Comments
 (0)