import gradio as gr from utils.excel_operations import read_excel, write_excel from utils.state_management import state def login_signup(): def authenticate(email, password): customers = read_excel('data/customers.xlsx') user = next((c for c in customers if c['Email'] == email), None) if user and user['Password'] == password: state["user"] = user return "Login Successful!" return "Invalid credentials!" def register(name, email, password, preferences, allergies, occasion): customers = read_excel('data/customers.xlsx') if any(c['Email'] == email for c in customers): return "Email already exists!" customers.append({ "Name": name, "Email": email, "Password": password, "Preferences": preferences, "Allergies": allergies, "Occasion": occasion }) write_excel('data/customers.xlsx', customers) return "Registration Successful!" with gr.Group(): with gr.Box(): gr.Markdown("### Login") email = gr.Textbox(label="Email") password = gr.Textbox(label="Password", type="password") login_btn = gr.Button("Login") login_result = gr.Label() login_btn.click(authenticate, inputs=[email, password], outputs=login_result) with gr.Box(): gr.Markdown("### Register") name = gr.Textbox(label="Name") reg_email = gr.Textbox(label="Email") reg_password = gr.Textbox(label="Password", type="password") preferences = gr.Dropdown(["Vegetarian", "Vegan", "Halal", "Full Menu"], label="Preferences") allergies = gr.Textbox(label="Allergies (comma-separated)") occasion = gr.Textbox(label="Special Occasion") register_btn = gr.Button("Register") register_result = gr.Label() register_btn.click(register, inputs=[name, reg_email, reg_password, preferences, allergies, occasion], outputs=register_result)