@@ -18,18 +18,15 @@ def __init__(
1818 self ._build ()
1919
2020 def _build (self ) -> None :
21+ self .on ("click" , lambda : state .select_model (self .model ))
2122 base_classes = "w-full flex items-center justify-between cursor-pointer p-2 rounded transition-all"
2223 if self .is_selected_row :
2324 base_classes += " bg-blue-100 dark:bg-blue-900 border-l-4 border-blue-500"
2425 else :
2526 base_classes += " hover:bg-gray-100 dark:hover:bg-gray-800"
2627
2728 with self .classes (base_classes ):
28- self .name_label = (
29- ui .label (text = self .model .name )
30- .classes ("self-center" )
31- .on ("click" , lambda : state .select_model (self .model ))
32- )
29+ self .name_label = ui .label (text = self .model .name ).classes ("self-center" )
3330 if self .color :
3431 self .name_label .classes (add = self .color )
3532 self .name_input = (
@@ -39,23 +36,31 @@ def _build(self) -> None:
3936 )
4037 self .name_label .bind_visibility_from (self , "is_editing" , lambda x : not x )
4138
42- # self.on("click", lambda: state.select_model(self.model))
43-
4439 with ui .row ().classes ("gap-2" ):
45- self .edit_button = ui .button (
46- icon = "edit" ,
47- on_click = self ._toggle_edit ,
48- ).bind_visibility_from (self , "is_editing" , lambda x : not x )
49- self .save_button = ui .button (
50- icon = "save" ,
51- on_click = self ._save_model ,
52- ).bind_visibility_from (self , "is_editing" )
53- ui .button (
54- icon = "delete" , on_click = lambda _ : state .delete_model (self .model )
40+ # Use click.stop to prevent event bubbling
41+ self .edit_button = (
42+ ui .button (
43+ icon = "edit" ,
44+ )
45+ .on ("click.stop" , self ._toggle_edit )
46+ .bind_visibility_from (self , "is_editing" , lambda x : not x )
5547 )
5648
49+ self .save_button = (
50+ ui .button (
51+ icon = "save" ,
52+ )
53+ .on ("click.stop" , self ._save_model )
54+ .bind_visibility_from (self , "is_editing" )
55+ )
56+
57+ ui .button (
58+ icon = "delete" ,
59+ ).on ("click.stop" , lambda : state .delete_model (self .model ))
60+
5761 def _toggle_edit (self ) -> None :
5862 print ("editing" )
63+
5964 self .is_editing = not self .is_editing
6065
6166 def _save_model (self ) -> None :
0 commit comments