@@ -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