# 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 ], )