Spaces:
Sleeping
Sleeping
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() | |