4141    ComponentType ,
4242    Context ,
4343    EventHandlerDict ,
44-     JavaScript ,
4544    Key ,
4645    LayoutEventMessage ,
4746    LayoutUpdateMessage ,
@@ -119,7 +118,7 @@ async def deliver(self, event: LayoutEventMessage | dict[str, Any]) -> None:
119118        # we just ignore the event. 
120119        handler  =  self ._event_handlers .get (event ["target" ])
121120
122-         if  handler  is  not None   and   not   isinstance ( handler ,  JavaScript ) :
121+         if  handler  is  not None :
123122            try :
124123                await  handler .function (event ["data" ])
125124            except  Exception :
@@ -282,23 +281,16 @@ def _render_model_attributes(
282281
283282        model_event_handlers  =  new_state .model .current ["eventHandlers" ] =  {}
284283        for  event , handler  in  handlers_by_event .items ():
285-             if  isinstance (handler , JavaScript ):
286-                 target  =  "__javascript__: "  +  handler 
287-                 prevent_default  =  False 
288-                 stop_propagation  =  False 
284+             if  event  in  old_state .targets_by_event :
285+                 target  =  old_state .targets_by_event [event ]
289286            else :
290-                 prevent_default  =  handler .prevent_default 
291-                 stop_propagation  =  handler .stop_propagation 
292-                 if  event  in  old_state .targets_by_event :
293-                     target  =  old_state .targets_by_event [event ]
294-                 else :
295-                     target  =  uuid4 ().hex  if  handler .target  is  None  else  handler .target 
287+                 target  =  uuid4 ().hex  if  handler .target  is  None  else  handler .target 
296288            new_state .targets_by_event [event ] =  target 
297289            self ._event_handlers [target ] =  handler 
298290            model_event_handlers [event ] =  {
299291                "target" : target ,
300-                 "preventDefault" : prevent_default ,
301-                 "stopPropagation" : stop_propagation ,
292+                 "preventDefault" : handler . prevent_default ,
293+                 "stopPropagation" : handler . stop_propagation ,
302294            }
303295
304296        return  None 
@@ -313,20 +305,13 @@ def _render_model_event_handlers_without_old_state(
313305
314306        model_event_handlers  =  new_state .model .current ["eventHandlers" ] =  {}
315307        for  event , handler  in  handlers_by_event .items ():
316-             if  isinstance (handler , JavaScript ):
317-                 target  =  "__javascript__: "  +  handler 
318-                 prevent_default  =  False 
319-                 stop_propagation  =  False 
320-             else :
321-                 target  =  uuid4 ().hex  if  handler .target  is  None  else  handler .target 
322-                 prevent_default  =  handler .prevent_default 
323-                 stop_propagation  =  handler .stop_propagation 
308+             target  =  uuid4 ().hex  if  handler .target  is  None  else  handler .target 
324309            new_state .targets_by_event [event ] =  target 
325310            self ._event_handlers [target ] =  handler 
326311            model_event_handlers [event ] =  {
327312                "target" : target ,
328-                 "preventDefault" : prevent_default ,
329-                 "stopPropagation" : stop_propagation ,
313+                 "preventDefault" : handler . prevent_default ,
314+                 "stopPropagation" : handler . stop_propagation ,
330315            }
331316
332317        return  None 
0 commit comments