Skip to content

Commit 5efd723

Browse files
committed
cont
1 parent a2bdbfb commit 5efd723

2 files changed

Lines changed: 26 additions & 18 deletions

File tree

fastapi_forge/frontend/components/model_row.py

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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:

fastapi_forge/frontend/state.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,10 @@ def update_model_name(self, model: Model, new_name: str) -> None:
105105
self.render_model_editor_fn()
106106

107107
def select_model(self, model: Model) -> None:
108-
print("selecting")
108+
if self.selected_model == model:
109+
return
110+
# print("selecting")
111+
109112
if (
110113
self.select_model_fn is None
111114
or self.render_models_fn is None

0 commit comments

Comments
 (0)