vargha's picture
phase 2 validation
c6fc32c
# 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, review_dashboard_page=None):
def logout_and_clear_progress_fn(current_session_state):
# AuthService.logout returns 5 values for both dashboards
logout_outputs = AuthService.logout(current_session_state)
# Add an empty string to clear the progress_display
return list(logout_outputs) + [""]
outputs_for_logout = [
login_page.container,
dashboard_page.container,
]
if review_dashboard_page:
outputs_for_logout.append(review_dashboard_page.container)
outputs_for_logout.extend([
self.welcome,
login_page.message,
self.progress_display, # Cleared on logout
])
self.logout_btn.click(
fn=logout_and_clear_progress_fn,
inputs=[session_state],
outputs=outputs_for_logout,
)