Skip to content

Commit afc8dd8

Browse files
authored
Merge pull request #51 from NikiforovAll/50-fix-marketplace-search-enter-key
🐛 fix(marketplace): resolve Enter key conflict in search and preserve state
2 parents c4fa2a2 + 414c410 commit afc8dd8

File tree

2 files changed

+17
-22
lines changed

2 files changed

+17
-22
lines changed

src/lazyclaude/app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,7 @@ def _enter_plugin_preview(self, plugin: MarketplacePlugin) -> None:
847847
self._plugin_preview_mode = True
848848

849849
if self._marketplace_modal:
850-
self._marketplace_modal.hide()
850+
self._marketplace_modal.hide(preserve_state=True)
851851

852852
self._update_panels()
853853
self._update_subtitle()
@@ -902,7 +902,7 @@ def _exit_plugin_preview(self) -> None:
902902
self._main_pane.customization = None
903903

904904
if self._marketplace_modal:
905-
self._marketplace_modal.show()
905+
self._marketplace_modal.show(preserve_state=True)
906906

907907
def action_exit_preview(self) -> None:
908908
"""Exit plugin preview mode (visible binding for Esc in preview)."""

src/lazyclaude/widgets/marketplace_modal.py

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ class MarketplaceModal(Widget):
2626
Binding("p", "preview_plugin", "Preview", show=False),
2727
Binding("j", "cursor_down", "Down", show=False),
2828
Binding("k", "cursor_up", "Up", show=False),
29-
Binding("enter", "select_node", "Select", show=False, priority=True),
30-
Binding("space", "select_node", "Toggle", show=False),
29+
Binding("space", "toggle_node", "Toggle", show=False),
3130
Binding("right", "expand_node", "Expand", show=False),
3231
Binding("l", "expand_node", "Expand", show=False),
3332
Binding("left", "collapse_node", "Collapse", show=False),
@@ -169,7 +168,7 @@ def _update_footer(self, data: MarketplacePlugin | Marketplace | None) -> None:
169168
)
170169
elif isinstance(data, Marketplace):
171170
footer.update(
172-
"[bold]Enter[/] Expand [bold]u[/] Update "
171+
"[bold]Space[/] Toggle [bold]u[/] Update "
173172
"[bold]/[/] Search [bold]Esc[/] Close"
174173
)
175174
else:
@@ -179,21 +178,23 @@ def set_loader(self, loader: MarketplaceLoader) -> None:
179178
"""Set the marketplace loader."""
180179
self._loader = loader
181180

182-
def show(self) -> None:
181+
def show(self, preserve_state: bool = False) -> None:
183182
"""Show the modal and load marketplace data."""
184-
self._load_data()
185-
self._build_tree()
183+
if not preserve_state:
184+
self._load_data()
185+
self._build_tree()
186186
self.add_class("visible")
187187
if self._tree:
188188
self._tree.focus()
189189

190-
def hide(self) -> None:
190+
def hide(self, preserve_state: bool = False) -> None:
191191
"""Hide the modal."""
192192
self.remove_class("visible")
193-
self._filter_query = ""
194-
if self._filter_input:
195-
self._filter_input.clear()
196-
self._filter_input.hide()
193+
if not preserve_state:
194+
self._filter_query = ""
195+
if self._filter_input:
196+
self._filter_input.clear()
197+
self._filter_input.hide()
197198

198199
def _load_data(self) -> None:
199200
"""Load marketplace data from the loader."""
@@ -395,15 +396,9 @@ def action_cursor_up(self) -> None:
395396
if self._tree:
396397
self._tree.action_cursor_up()
397398

398-
def action_select_node(self) -> None:
399-
"""Toggle node expansion or preview plugin."""
400-
if not self._tree:
401-
return
402-
403-
node = self._tree.cursor_node
404-
if node and isinstance(node.data, MarketplacePlugin):
405-
self.post_message(self.PluginPreview(node.data))
406-
else:
399+
def action_toggle_node(self) -> None:
400+
"""Toggle node expansion."""
401+
if self._tree:
407402
self._tree.action_select_cursor()
408403

409404
def action_expand_node(self) -> None:

0 commit comments

Comments
 (0)