akhaliq HF staff commited on
Commit
cddc612
·
verified ·
1 Parent(s): cf55fa7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -32
app.py CHANGED
@@ -102,7 +102,7 @@ body {
102
  flex-grow: 1;
103
  }
104
  .paper-list {
105
- max-height: 70vh;
106
  overflow-y: auto;
107
  border: 1px solid #e2e8f0;
108
  border-radius: 8px;
@@ -139,12 +139,13 @@ body {
139
  justify-content: space-between;
140
  align-items: center;
141
  margin-top: 0.5rem;
 
142
  }
143
  button, .button {
144
  background-color: #4299e1;
145
  color: white;
146
  border: none;
147
- padding: 0.25rem 0.5rem;
148
  border-radius: 4px;
149
  cursor: pointer;
150
  transition: background-color 0.3s;
@@ -189,6 +190,11 @@ button:hover, .button:hover {
189
  .container {
190
  max-width: 768px;
191
  }
 
 
 
 
 
192
  }
193
  """
194
 
@@ -196,51 +202,36 @@ paper_manager = PaperManager()
196
 
197
  def initialize_app():
198
  if paper_manager.fetch_papers():
199
- prev_disabled = paper_manager.current_page == 1
200
- next_disabled = paper_manager.current_page >= paper_manager.total_pages
201
-
202
- return (
203
- paper_manager.render_papers(),
204
- f"Page {paper_manager.current_page} of {paper_manager.total_pages}",
205
- prev_disabled,
206
- next_disabled
207
- )
208
  else:
209
- return "<div class='no-papers'>Failed to fetch papers. Please try again later.</div>", "Error", True, True
210
 
211
  def refresh_papers():
212
  if paper_manager.fetch_papers():
213
- prev_disabled = paper_manager.current_page == 1
214
- next_disabled = paper_manager.current_page >= paper_manager.total_pages
215
-
216
- return (
217
- paper_manager.render_papers(),
218
- f"Page {paper_manager.current_page} of {paper_manager.total_pages}",
219
- prev_disabled,
220
- next_disabled
221
- )
222
  else:
223
- return "<div class='no-papers'>Failed to refresh papers. Please try again later.</div>", "Error", True, True
224
 
225
  demo = gr.Blocks(css=css)
226
 
227
  with demo:
228
  with gr.Column(elem_classes=["container"]):
229
  gr.Markdown("# Daily Papers", elem_classes=["title"])
 
 
 
 
 
230
  with gr.Row(elem_classes=["search-row"]):
231
  search_input = gr.Textbox(label="", placeholder="Search papers...")
232
  refresh_button = gr.Button("↻", variant="primary")
233
- paper_list = gr.HTML(elem_classes=["paper-list"])
234
 
235
- with gr.Row(elem_classes=["footer"]):
236
- prev_button = gr.Button("← Prev", interactive=True)
237
- page_info = gr.Markdown()
238
- next_button = gr.Button("Next →", interactive=True)
239
-
240
- demo.load(initialize_app, outputs=[paper_list, page_info, prev_button, next_button])
241
  search_input.change(paper_manager.search_papers, inputs=[search_input], outputs=[paper_list])
242
- refresh_button.click(refresh_papers, outputs=[paper_list, page_info, prev_button, next_button])
243
- prev_button.click(paper_manager.prev_page, outputs=[paper_list, page_info, prev_button, next_button])
244
- next_button.click(paper_manager.next_page, outputs=[paper_list, page_info, prev_button, next_button])
245
 
246
  demo.launch()
 
102
  flex-grow: 1;
103
  }
104
  .paper-list {
105
+ max-height: 60vh;
106
  overflow-y: auto;
107
  border: 1px solid #e2e8f0;
108
  border-radius: 8px;
 
139
  justify-content: space-between;
140
  align-items: center;
141
  margin-top: 0.5rem;
142
+ position: relative;
143
  }
144
  button, .button {
145
  background-color: #4299e1;
146
  color: white;
147
  border: none;
148
+ padding: 0.5rem 1rem;
149
  border-radius: 4px;
150
  cursor: pointer;
151
  transition: background-color 0.3s;
 
190
  .container {
191
  max-width: 768px;
192
  }
193
+ .footer {
194
+ position: sticky;
195
+ bottom: 0;
196
+ background-color: white;
197
+ }
198
  }
199
  """
200
 
 
202
 
203
  def initialize_app():
204
  if paper_manager.fetch_papers():
205
+ return paper_manager.render_papers(), f"Page {paper_manager.current_page} of {paper_manager.total_pages}"
 
 
 
 
 
 
 
 
206
  else:
207
+ return "<div class='no-papers'>Failed to fetch papers. Please try again later.</div>", "Error"
208
 
209
  def refresh_papers():
210
  if paper_manager.fetch_papers():
211
+ return paper_manager.render_papers(), f"Page {paper_manager.current_page} of {paper_manager.total_pages}"
 
 
 
 
 
 
 
 
212
  else:
213
+ return "<div class='no-papers'>Failed to refresh papers. Please try again later.</div>", "Error"
214
 
215
  demo = gr.Blocks(css=css)
216
 
217
  with demo:
218
  with gr.Column(elem_classes=["container"]):
219
  gr.Markdown("# Daily Papers", elem_classes=["title"])
220
+ with gr.Row(elem_classes=["footer"]): # Move buttons above the paper list
221
+ prev_button = gr.Button("← Prev")
222
+ page_info = gr.Markdown()
223
+ next_button = gr.Button("Next →")
224
+
225
  with gr.Row(elem_classes=["search-row"]):
226
  search_input = gr.Textbox(label="", placeholder="Search papers...")
227
  refresh_button = gr.Button("↻", variant="primary")
 
228
 
229
+ paper_list = gr.HTML(elem_classes=["paper-list"])
230
+
231
+ demo.load(initialize_app, outputs=[paper_list, page_info])
 
 
 
232
  search_input.change(paper_manager.search_papers, inputs=[search_input], outputs=[paper_list])
233
+ refresh_button.click(refresh_papers, outputs=[paper_list, page_info])
234
+ prev_button.click(paper_manager.prev_page, outputs=[paper_list, page_info])
235
+ next_button.click(paper_manager.next_page, outputs=[paper_list, page_info])
236
 
237
  demo.launch()