ankban commited on
Commit
5028943
Β·
verified Β·
1 Parent(s): a8a740e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -43
app.py CHANGED
@@ -8,25 +8,28 @@ def main_app():
8
  current_mode = gr.State("spoken")
9
 
10
  with gr.Row():
11
- # Sidebar (Left Navigation)
12
  with gr.Column(scale=1, min_width=220, elem_id="sidebar"):
13
  gr.Markdown("### πŸŽ“ Educare")
14
  gr.Markdown("---")
15
 
16
- with gr.Accordion("🧭 Learning Modes", open=True):
17
- btn_spoken = gr.Button("πŸ—£ Spoken Communication")
18
- btn_written = gr.Button("✍️ Written Communication")
19
- with gr.Accordion("πŸ“„ File-Based Learning", open=False):
20
- btn_file_study = gr.Button("πŸ“˜ Study Guides")
21
- btn_file_view = gr.Button("πŸ“ Files")
22
 
23
- gr.Markdown("---")
24
- gr.Markdown("""**Ankush Bansal**
25
- ankban@wharton.upenn.edu""")
 
 
 
 
 
 
 
 
26
 
27
- # Main Display Area
28
  with gr.Column(scale=4):
29
- # === Panels ===
30
  with gr.Column(visible=True, elem_id="module-wrapper") as spoken_panel:
31
  spoken_dashboard()
32
 
@@ -35,43 +38,30 @@ ankban@wharton.upenn.edu""")
35
 
36
  file_router, switch_view, study_panel, file_panel = file_based_learning_router()
37
 
38
- # === Mode Switch Logic ===
39
  def switch_mode(mode):
40
  return (
41
- gr.update(visible=(mode == "spoken")), # spoken_panel
42
- gr.update(visible=(mode == "written")), # written_panel
43
- gr.update(visible=(mode == "study")), # study_panel from file_router
44
- gr.update(visible=(mode == "file")), # file_panel from file_router
45
- mode # update state
46
  )
47
 
48
- # === Button Hooks ===
49
- btn_spoken.click(
50
- fn=switch_mode,
51
- inputs=[gr.State("spoken")],
52
- outputs=[spoken_panel, written_panel, study_panel, file_panel, current_mode]
53
- )
54
-
55
- btn_written.click(
56
- fn=switch_mode,
57
- inputs=[gr.State("written")],
58
- outputs=[spoken_panel, written_panel, study_panel, file_panel, current_mode]
59
- )
60
-
61
- btn_file_study.click(
62
- fn=switch_mode,
63
- inputs=[gr.State("study")],
64
- outputs=[spoken_panel, written_panel, study_panel, file_panel, current_mode]
65
- )
66
-
67
- btn_file_view.click(
68
- fn=switch_mode,
69
- inputs=[gr.State("file")],
70
- outputs=[spoken_panel, written_panel, study_panel, file_panel, current_mode]
71
- )
72
 
 
 
73
 
74
  return app
75
 
76
  if __name__ == "__main__":
77
- main_app().launch(server_name="0.0.0.0", server_port=7860)
 
8
  current_mode = gr.State("spoken")
9
 
10
  with gr.Row():
11
+ # === Sidebar ===
12
  with gr.Column(scale=1, min_width=220, elem_id="sidebar"):
13
  gr.Markdown("### πŸŽ“ Educare")
14
  gr.Markdown("---")
15
 
16
+ btn_spoken = gr.Button("πŸ—£ Spoken Communication")
17
+ btn_written = gr.Button("✍️ Written Communication")
 
 
 
 
18
 
19
+ gr.Markdown("### πŸ“„ File-Based Learning")
20
+ btn_file_study = gr.Button("β€ƒπŸ“˜ Study Guides") # indented using em-spaces
21
+ btn_file_view = gr.Button("β€ƒπŸ“ Files")
22
+
23
+ # Pinned user info at bottom
24
+ gr.HTML("""
25
+ <div style='position: absolute; bottom: 20px; left: 20px; font-size: 14px;'>
26
+ <strong>Ankush Bansal</strong><br>
27
+ <span style="color: #555;">ankban@wharton.upenn.edu</span>
28
+ </div>
29
+ """)
30
 
31
+ # === Main View Area ===
32
  with gr.Column(scale=4):
 
33
  with gr.Column(visible=True, elem_id="module-wrapper") as spoken_panel:
34
  spoken_dashboard()
35
 
 
38
 
39
  file_router, switch_view, study_panel, file_panel = file_based_learning_router()
40
 
41
+ # === Mode Switch Handler ===
42
  def switch_mode(mode):
43
  return (
44
+ gr.update(visible=(mode == "spoken")), # spoken_panel
45
+ gr.update(visible=(mode == "written")), # written_panel
46
+ gr.update(visible=(mode == "study")), # study_guide_panel
47
+ gr.update(visible=(mode == "file")), # file_viewer_panel
48
+ mode
49
  )
50
 
51
+ # === Button Actions ===
52
+ btn_spoken.click(fn=switch_mode, inputs=[gr.State("spoken")],
53
+ outputs=[spoken_panel, written_panel, study_panel, file_panel, current_mode])
54
+
55
+ btn_written.click(fn=switch_mode, inputs=[gr.State("written")],
56
+ outputs=[spoken_panel, written_panel, study_panel, file_panel, current_mode])
57
+
58
+ btn_file_study.click(fn=switch_mode, inputs=[gr.State("study")],
59
+ outputs=[spoken_panel, written_panel, study_panel, file_panel, current_mode])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
+ btn_file_view.click(fn=switch_mode, inputs=[gr.State("file")],
62
+ outputs=[spoken_panel, written_panel, study_panel, file_panel, current_mode])
63
 
64
  return app
65
 
66
  if __name__ == "__main__":
67
+ main_app().launch(server_name="0.0.0.0", server_port=7860)