import gradio as gr from components.menu import generate_menu from components.popup import show_popup from components.cart import add_to_cart, cart_data import pandas as pd # Load menu data menu_data = pd.read_excel("data/menu.xlsx") def main(): with gr.Blocks(css="static/styles.css") as app: gr.Markdown("# Dynamic Menu with Popups and Ordering System") # Preference Selection preference = gr.Radio( label="Choose a Preference", choices=["All", "Vegetarian", "Non-Vegetarian", "Guilt-Free"], value="All" ) # Menu Display menu_display = gr.Row() preference.change(generate_menu, inputs=[preference], outputs=menu_display) # Popup Display popup_display = gr.Column(visible=False) # Placeholder for popup # Cart Section gr.Markdown("## Your Cart") cart_display = gr.Dataframe( value=pd.DataFrame(cart_data(), columns=["Dish", "Spice Level", "Extras", "Instructions", "Quantity", "Price"]), headers=["Dish", "Spice Level", "Extras", "Instructions", "Quantity", "Price"] ) # Keep updating the cart display def update_cart_display(): return pd.DataFrame(cart_data(), columns=["Dish", "Spice Level", "Extras", "Instructions", "Quantity", "Price"]) # Update cart when new item is added gr.Button("Update Cart").click( update_cart_display, inputs=[], outputs=cart_display ) app.launch() if __name__ == "__main__": main()