@@ -426,9 +426,12 @@ def trigger_screenshot(n_clicks, current_requests, struct_or_mol):
426
426
def download_image (image_data_timestamp , image_data , image_request ):
427
427
if not image_data_timestamp :
428
428
raise PreventUpdate
429
+
429
430
return {
430
431
"content" : image_data [len ("data:image/png;base64," ) :],
431
432
"filename" : image_request ["filename" ],
433
+ "base64" : True ,
434
+ "type" : "image/png" ,
432
435
}
433
436
434
437
@app .callback (
@@ -589,13 +592,16 @@ def _make_bonding_algorithm_custom_cuffoff_data(graph):
589
592
def _sub_layouts (self ):
590
593
591
594
struct_layout = html .Div (
592
- CrystalToolkitScene (
593
- id = self .id ("scene" ),
594
- data = self .initial_data ["scene" ],
595
- settings = self .initial_scene_settings ,
596
- sceneSize = "100%" ,
597
- ** self .scene_kwargs ,
598
- ),
595
+ [
596
+ CrystalToolkitScene (
597
+ id = self .id ("scene" ),
598
+ data = self .initial_data ["scene" ],
599
+ settings = self .initial_scene_settings ,
600
+ sceneSize = "100%" ,
601
+ ** self .scene_kwargs ,
602
+ ),
603
+ dcc .Download (id = self .id ("download" )),
604
+ ],
599
605
style = {
600
606
"width" : "100%" ,
601
607
"height" : "100%" ,
@@ -611,7 +617,6 @@ def _sub_layouts(self):
611
617
kind = "primary" ,
612
618
id = self .id ("screenshot_button" ),
613
619
),
614
- dcc .Download (id = self .id ("download" ), type = "image/png" , base64 = True ),
615
620
],
616
621
# TODO: change to "bottom" when dropdown included
617
622
style = {"verticalAlign" : "top" , "display" : "inline-block" },
0 commit comments