@@ -22,6 +22,16 @@ def feed_page():
2222 # Create chat feed
2323 chat_feed = pn .Column (sizing_mode = "stretch_both" )
2424
25+ def on_delete (snippet_id ):
26+ """Handle deletion of a visualization."""
27+ # Delete from database
28+ get_db ().delete_snippet (snippet_id )
29+ # Remove from cache
30+ if snippet_id in pn .state .cache ["views" ]:
31+ del pn .state .cache ["views" ][snippet_id ]
32+ # Refresh feed
33+ update_chat ()
34+
2535 def get_view (req ):
2636 """Create view for a single visualization in the feed."""
2737 if req .id in pn .state .cache ["views" ]:
@@ -35,7 +45,7 @@ def get_view(req):
3545 title = f"""\
3646 **{ req .name or req .id } ** ({ created_at } )\n \n { req .description } \n
3747"""
38- iframe = f"""<div style="resize: vertical; overflow: hidden; height: calc(75vh - 200px ); width: 100%; max-width: 100%; border: 1px solid gray;">
48+ iframe = f"""<div style="resize: vertical; overflow: hidden; height: calc(75vh - 300px ); width: 100%; max-width: 100%; border: 1px solid gray;">
3949<iframe src="{ url } " style="height: 100%; width: 100%; border: none;" frameborder="0"></iframe>
4050</div>"""
4151 # Create copy button with JavaScript callback
@@ -66,9 +76,31 @@ def get_view(req):
6676 """ ,
6777 )
6878
79+ delete_button = pn .widgets .Button (
80+ name = "🗑️ Delete" ,
81+ button_type = "danger" ,
82+ width = 120 ,
83+ description = "Delete this visualization" ,
84+ )
85+ delete_button .on_click (lambda event : on_delete (req .id ))
86+
6987 with pn .config .set (sizing_mode = "stretch_width" ):
7088 message = pn .Column (
71- pn .pane .Markdown (title ), pn .pane .Markdown (iframe ), pn .Row (pn .HSpacer (), open_button , copy_button , margin = (0 , 10 , 0 , 10 ), align = "end" )
89+ pn .pane .Markdown (
90+ title ,
91+ margin = (10 , 10 , 0 , 10 ),
92+ ),
93+ pn .Tabs (
94+ pn .pane .Markdown (iframe , name = "View" ),
95+ pn .widgets .CodeEditor (
96+ value = req .app ,
97+ name = "Code" ,
98+ language = "python" ,
99+ theme = "github_dark" ,
100+ ),
101+ margin = (0 , 10 , 10 , 10 ),
102+ ),
103+ pn .Row (pn .HSpacer (), open_button , copy_button , delete_button , margin = (0 , 10 , 0 , 10 ), align = "end" ),
72104 )
73105
74106 pn .state .cache ["views" ][req .id ] = message
0 commit comments