Spaces:
Running
Running
# components/header.py | |
import gradio as gr | |
from utils.auth import AuthService | |
class Header: | |
def __init__(self): | |
with gr.Row(variant="panel", elem_classes="header-row") as self.container: | |
self.welcome = gr.Markdown() | |
self.progress_display = gr.Markdown("") # New element for progress display | |
self.logout_btn = gr.Button("Log out", scale=0, min_width=90) | |
# ---------------- wiring ---------------- | |
def register_callbacks(self, login_page, dashboard_page, session_state): | |
def logout_and_clear_progress_fn(current_session_state): | |
# AuthService.logout is expected to return 4 values for the original outputs | |
logout_outputs = AuthService.logout(current_session_state) | |
# Add an empty string to clear the progress_display | |
return list(logout_outputs) + [""] | |
self.logout_btn.click( | |
fn=logout_and_clear_progress_fn, | |
inputs=[session_state], | |
outputs=[ | |
login_page.container, | |
dashboard_page.container, | |
self.welcome, | |
login_page.message, | |
self.progress_display, # Cleared on logout | |
], | |
) |