File size: 1,231 Bytes
1ef4e10
0fb23b8
1ef4e10
 
 
 
 
 
 
 
f7ef7d3
1ef4e10
 
 
 
f7ef7d3
 
 
 
 
 
1ef4e10
f7ef7d3
 
1ef4e10
f7ef7d3
 
 
 
 
1ef4e10
c8c252f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 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
            ],
        )