# modules/ui/views/login_view.py import gradio as gr from ...auth.auth import authenticate_user def create_login_view(): """Crea la vista de login""" with gr.Blocks() as view: username = gr.Textbox(label="Usuario") password = gr.Textbox(label="Contraseña", type="password") message = gr.Markdown() login_button = gr.Button("Iniciar Sesión", variant="primary") # Asignar los componentes al view para acceso externo view.username = username view.role = gr.State("") # Para almacenar el rol después del login def handle_login(user, pwd): success, role = authenticate_user(user, pwd) if success: view.role.value = role return user, role, "" return None, None, "Credenciales incorrectas" login_button.click( fn=handle_login, inputs=[username, password], outputs=[username, view.role, message] ) return view, login_button