From 75a165163f76300f05b3f5f49f08bb17870343ba Mon Sep 17 00:00:00 2001 From: Marc Skov Madsen Date: Tue, 20 Jan 2026 04:53:08 +0000 Subject: [PATCH] delete button --- .../display_mcp/pages/feed_page.py | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/holoviz_mcp/display_mcp/pages/feed_page.py b/src/holoviz_mcp/display_mcp/pages/feed_page.py index 46fe916..f03653c 100644 --- a/src/holoviz_mcp/display_mcp/pages/feed_page.py +++ b/src/holoviz_mcp/display_mcp/pages/feed_page.py @@ -22,6 +22,16 @@ def feed_page(): # Create chat feed chat_feed = pn.Column(sizing_mode="stretch_both") + def on_delete(snippet_id): + """Handle deletion of a visualization.""" + # Delete from database + get_db().delete_snippet(snippet_id) + # Remove from cache + if snippet_id in pn.state.cache["views"]: + del pn.state.cache["views"][snippet_id] + # Refresh feed + update_chat() + def get_view(req): """Create view for a single visualization in the feed.""" if req.id in pn.state.cache["views"]: @@ -35,7 +45,7 @@ def get_view(req): title = f"""\ **{req.name or req.id}** ({created_at})\n\n{req.description}\n """ - iframe = f"""
+ iframe = f"""
""" # Create copy button with JavaScript callback @@ -66,9 +76,31 @@ def get_view(req): """, ) + delete_button = pn.widgets.Button( + name="🗑️ Delete", + button_type="danger", + width=120, + description="Delete this visualization", + ) + delete_button.on_click(lambda event: on_delete(req.id)) + with pn.config.set(sizing_mode="stretch_width"): message = pn.Column( - pn.pane.Markdown(title), pn.pane.Markdown(iframe), pn.Row(pn.HSpacer(), open_button, copy_button, margin=(0, 10, 0, 10), align="end") + pn.pane.Markdown( + title, + margin=(10, 10, 0, 10), + ), + pn.Tabs( + pn.pane.Markdown(iframe, name="View"), + pn.widgets.CodeEditor( + value=req.app, + name="Code", + language="python", + theme="github_dark", + ), + margin=(0, 10, 10, 10), + ), + pn.Row(pn.HSpacer(), open_button, copy_button, delete_button, margin=(0, 10, 0, 10), align="end"), ) pn.state.cache["views"][req.id] = message