Skip to content

Commit edf0498

Browse files
authored
Update layout.py
1 parent 13f588a commit edf0498

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

src/reactpy/core/layout.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -277,10 +277,17 @@ def _render_model_attributes(
277277

278278
model_event_handlers = new_state.model.current["eventHandlers"] = {}
279279
for event, handler in handlers_by_event.items():
280-
if event in old_state.targets_by_event:
281-
target = old_state.targets_by_event[event]
280+
if isinstance(handler, str):
281+
target = handler
282+
prevent_default = False
283+
stop_propagation = False
282284
else:
283-
target = uuid4().hex if handler.target is None else handler.target
285+
prevent_default = handler.prevent_default
286+
stop_propagation = handler.stop_propagation
287+
if event in old_state.targets_by_event:
288+
target = old_state.targets_by_event[event]
289+
else:
290+
target = uuid4().hex if handler.target is None else handler.target
284291
new_state.targets_by_event[event] = target
285292
self._event_handlers[target] = handler
286293
model_event_handlers[event] = {
@@ -301,7 +308,14 @@ def _render_model_event_handlers_without_old_state(
301308

302309
model_event_handlers = new_state.model.current["eventHandlers"] = {}
303310
for event, handler in handlers_by_event.items():
304-
target = uuid4().hex if handler.target is None else handler.target
311+
if isinstance(handler, str):
312+
target = handler
313+
prevent_default = False
314+
stop_propagation = False
315+
else:
316+
target = uuid4().hex if handler.target is None else handler.target
317+
prevent_default = handler.prevent_default
318+
stop_propagation = handler.stop_propagation
305319
new_state.targets_by_event[event] = target
306320
self._event_handlers[target] = handler
307321
model_event_handlers[event] = {

0 commit comments

Comments
 (0)