bluenevus commited on
Commit
392b6fc
·
1 Parent(s): 9acc52c

Update app.py via AI Editor

Browse files
Files changed (1) hide show
  1. app.py +15 -35
app.py CHANGED
@@ -225,7 +225,7 @@ def get_left_col_content():
225
  html.H5("Maiko Chat", className="mb-2"),
226
  dcc.Loading(
227
  id="chat-loading",
228
- type="dot",
229
  children=[
230
  dcc.Textarea(
231
  id="chat-input",
@@ -269,15 +269,6 @@ def get_left_col_content():
269
 
270
  def get_right_col_content(selected_type, store_data):
271
  controls = []
272
- controls.append(
273
- html.Div(id='progress-dot-area', style={'textAlign': 'center', 'marginBottom': '8px'})
274
- )
275
- controls.append(dcc.Loading(
276
- id="loading-indicator",
277
- type="dot",
278
- children=[html.Div(id="loading-output")]
279
- ))
280
-
281
  if selected_type == "Shred":
282
  controls.append(
283
  html.Div([
@@ -390,7 +381,8 @@ app.layout = dbc.Container([
390
  dcc.Store(id='store-loe'),
391
  dcc.Store(id='store-virtual-board'),
392
  dcc.Store(id='store-generated-doc'),
393
- dcc.Store(id='progress-dot-store'),
 
394
  dbc.Row([
395
  dbc.Col(
396
  html.H2(id='main-title', className="mt-3 mb-2", style={'textAlign': 'center', 'width':'100%'}),
@@ -417,7 +409,6 @@ app.layout = dbc.Container([
417
  ),
418
  dbc.Col(
419
  html.Div([
420
- html.Div(id='progress-dot-area', style={'textAlign': 'center', 'marginBottom': '8px'}),
421
  html.Div(id='right-col-content')
422
  ]),
423
  width=9
@@ -499,7 +490,7 @@ def update_right_col(selected_type):
499
  Output('document-preview', 'children'),
500
  Output('store-generated-doc', 'data'),
501
  Output('download-document', 'data'),
502
- Output('progress-dot-store', 'data')
503
  ],
504
  [
505
  Input({'type': 'upload-doc-type', 'subtype': ALL, 'index': ALL}, 'contents'),
@@ -546,8 +537,8 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
546
  "virtual_board": 8
547
  }
548
 
549
- # Show progress dot as soon as action is triggered
550
- progress = "progress"
551
  if "upload-doc-type" in trigger:
552
  for i, (contents, filenames) in enumerate(zip(contents_lists, filenames_lists)):
553
  if contents and filenames:
@@ -585,7 +576,7 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
585
  preview = markdown_table_preview(file_text)
586
  generated_doc = dash.no_update
587
  download_data = dash.no_update
588
- return stores + [file_list, uploaded_doc_name_shred, preview, generated_doc, download_data, progress]
589
 
590
  if any(n_clicks_generate_list):
591
  logging.info(f"Generating document for type: {selected_type}")
@@ -629,7 +620,7 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
629
  else:
630
  preview = markdown_narrative_preview(generated_doc)
631
  download_data = dash.no_update
632
- return stores + [file_list, uploaded_doc_name_shred, preview, generated_doc, download_data, progress]
633
 
634
  if "btn-download" in trigger:
635
  doc = prev_generated
@@ -656,17 +647,17 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
656
  doc = stores[8]
657
  if not doc:
658
  logging.warning("No generated document to download.")
659
- return stores + [file_list, uploaded_doc_name_shred, dash.no_update, dash.no_update, dash.no_update, None]
660
  if selected_type in spreadsheet_types:
661
  xlsx_io = markdown_tables_to_xlsx(doc)
662
  logging.info("Spreadsheet document prepared for download.")
663
  download_data = dcc.send_bytes(xlsx_io.getvalue(), filename=f"{selected_type}_output.xlsx")
664
- return stores + [file_list, uploaded_doc_name_shred, dash.no_update, dash.no_update, download_data, progress]
665
  else:
666
  content = doc.encode('utf-8')
667
  logging.info("Narrative document prepared for download.")
668
  download_data = dcc.send_bytes(content, filename=f"{selected_type}_output.md")
669
- return stores + [file_list, uploaded_doc_name_shred, dash.no_update, dash.no_update, download_data, progress]
670
 
671
  doc = get_generated_doc(selected_type)
672
  if not doc:
@@ -692,30 +683,19 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
692
  preview = markdown_narrative_preview(doc)
693
  else:
694
  preview = html.Div("No document loaded.")
695
- return stores + [file_list, uploaded_doc_name_shred, preview, dash.no_update, dash.no_update, None]
696
  if selected_type in spreadsheet_types:
697
  preview = markdown_table_preview(doc)
698
  else:
699
  preview = markdown_narrative_preview(doc)
700
- return stores + [file_list, uploaded_doc_name_shred, preview, doc, dash.no_update, None]
701
-
702
- @app.callback(
703
- Output("progress-dot-area", "children"),
704
- Input('progress-dot-store', 'data')
705
- )
706
- def update_right_progress_dot(progress):
707
- if progress == "progress":
708
- return html.Div("...", id="progress-blinker", style={'fontSize': '2rem', 'letterSpacing': '0.5rem', 'animation': 'blink 1s infinite'})
709
- return ""
710
 
711
  @app.callback(
712
  Output("main-progress-dot-output", "children"),
713
- Input('progress-dot-store', 'data')
714
  )
715
  def update_main_progress_dot(progress):
716
- if progress == "progress":
717
- return html.Div("...", style={'fontSize': '2rem', 'letterSpacing': '0.5rem', 'animation': 'blink 1s infinite'})
718
- return ""
719
 
720
  if __name__ == '__main__':
721
  print("Starting the Dash application...")
 
225
  html.H5("Maiko Chat", className="mb-2"),
226
  dcc.Loading(
227
  id="chat-loading",
228
+ type="default",
229
  children=[
230
  dcc.Textarea(
231
  id="chat-input",
 
269
 
270
  def get_right_col_content(selected_type, store_data):
271
  controls = []
 
 
 
 
 
 
 
 
 
272
  if selected_type == "Shred":
273
  controls.append(
274
  html.Div([
 
381
  dcc.Store(id='store-loe'),
382
  dcc.Store(id='store-virtual-board'),
383
  dcc.Store(id='store-generated-doc'),
384
+ # This store triggers the main loader
385
+ dcc.Store(id='main-loader-trigger'),
386
  dbc.Row([
387
  dbc.Col(
388
  html.H2(id='main-title', className="mt-3 mb-2", style={'textAlign': 'center', 'width':'100%'}),
 
409
  ),
410
  dbc.Col(
411
  html.Div([
 
412
  html.Div(id='right-col-content')
413
  ]),
414
  width=9
 
490
  Output('document-preview', 'children'),
491
  Output('store-generated-doc', 'data'),
492
  Output('download-document', 'data'),
493
+ Output('main-loader-trigger', 'data')
494
  ],
495
  [
496
  Input({'type': 'upload-doc-type', 'subtype': ALL, 'index': ALL}, 'contents'),
 
537
  "virtual_board": 8
538
  }
539
 
540
+ # Show loader as soon as action is triggered
541
+ loader_trigger = time.time()
542
  if "upload-doc-type" in trigger:
543
  for i, (contents, filenames) in enumerate(zip(contents_lists, filenames_lists)):
544
  if contents and filenames:
 
576
  preview = markdown_table_preview(file_text)
577
  generated_doc = dash.no_update
578
  download_data = dash.no_update
579
+ return stores + [file_list, uploaded_doc_name_shred, preview, generated_doc, download_data, loader_trigger]
580
 
581
  if any(n_clicks_generate_list):
582
  logging.info(f"Generating document for type: {selected_type}")
 
620
  else:
621
  preview = markdown_narrative_preview(generated_doc)
622
  download_data = dash.no_update
623
+ return stores + [file_list, uploaded_doc_name_shred, preview, generated_doc, download_data, loader_trigger]
624
 
625
  if "btn-download" in trigger:
626
  doc = prev_generated
 
647
  doc = stores[8]
648
  if not doc:
649
  logging.warning("No generated document to download.")
650
+ return stores + [file_list, uploaded_doc_name_shred, dash.no_update, dash.no_update, dash.no_update, loader_trigger]
651
  if selected_type in spreadsheet_types:
652
  xlsx_io = markdown_tables_to_xlsx(doc)
653
  logging.info("Spreadsheet document prepared for download.")
654
  download_data = dcc.send_bytes(xlsx_io.getvalue(), filename=f"{selected_type}_output.xlsx")
655
+ return stores + [file_list, uploaded_doc_name_shred, dash.no_update, dash.no_update, download_data, loader_trigger]
656
  else:
657
  content = doc.encode('utf-8')
658
  logging.info("Narrative document prepared for download.")
659
  download_data = dcc.send_bytes(content, filename=f"{selected_type}_output.md")
660
+ return stores + [file_list, uploaded_doc_name_shred, dash.no_update, dash.no_update, download_data, loader_trigger]
661
 
662
  doc = get_generated_doc(selected_type)
663
  if not doc:
 
683
  preview = markdown_narrative_preview(doc)
684
  else:
685
  preview = html.Div("No document loaded.")
686
+ return stores + [file_list, uploaded_doc_name_shred, preview, dash.no_update, dash.no_update, loader_trigger]
687
  if selected_type in spreadsheet_types:
688
  preview = markdown_table_preview(doc)
689
  else:
690
  preview = markdown_narrative_preview(doc)
691
+ return stores + [file_list, uploaded_doc_name_shred, preview, doc, dash.no_update, loader_trigger]
 
 
 
 
 
 
 
 
 
692
 
693
  @app.callback(
694
  Output("main-progress-dot-output", "children"),
695
+ Input('main-loader-trigger', 'data')
696
  )
697
  def update_main_progress_dot(progress):
698
+ return "" # dcc.Loading handles the animation via children update
 
 
699
 
700
  if __name__ == '__main__':
701
  print("Starting the Dash application...")