# modules/ui/views/login.py import gradio as gr from ...auth.auth import authenticate_user class LoginView: def __init__(self): with gr.Blocks() as self.view: with gr.Column(): gr.Markdown("# Iniciar Sesión") self.username = gr.Textbox(label="Usuario") self.password = gr.Textbox( label="Contraseña", type="password" ) self.role = gr.State() self.message = gr.Markdown() with gr.Row(): self.back_button = gr.Button("Volver") self.login_button = gr.Button( "Iniciar Sesión", variant="primary" ) def handle_login(username, password): success, role = authenticate_user(username, password) if success: self.role.value = role return username, role, "" return None, None, "Credenciales incorrectas" self.login_button.click( fn=handle_login, inputs=[self.username, self.password], outputs=[self.username, self.role, self.message] ) @property def submit(self): return self.login_button.click def create_login_view(): return LoginView().view