Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from menu_data import menu_data, get_suggestions | |
| # State to store order details | |
| final_order = [] | |
| def display_menu(category): | |
| """Fetch menu items dynamically based on category.""" | |
| return [f"{item['name']} - {item['price']}" for item in menu_data.get(category, [])] | |
| def add_item(item_name): | |
| """Add selected item to the order.""" | |
| final_order.append(item_name) | |
| suggestions = get_suggestions(item_name) | |
| return f"Added: {item_name}", suggestions | |
| def submit_order(custom_text): | |
| """Prepare final order summary.""" | |
| order_summary = f"Items: {', '.join(final_order)}\nCustom Notes: {custom_text}" | |
| return order_summary | |
| # Gradio app setup | |
| with gr.Blocks() as app: | |
| gr.Markdown("# 🍽 Restaurant Menu App") | |
| # Menu Section | |
| category_dropdown = gr.Dropdown(["Breads", "Veg Curries", "Non-Veg Curries"], label="Select Category") | |
| menu_output = gr.CheckboxGroup(label="Menu Items") | |
| category_dropdown.change(display_menu, category_dropdown, menu_output) | |
| # Item Selection | |
| selected_output = gr.Text(label="Your Selection") | |
| suggestions_output = gr.CheckboxGroup(label="Suggestions") | |
| menu_output.select(add_item, menu_output, [selected_output, suggestions_output]) | |
| # Final Order | |
| custom_input = gr.Textbox(label="Custom Preparation Notes") | |
| submit_btn = gr.Button("Submit Order") | |
| final_output = gr.Textbox(label="Final Order Summary") | |
| submit_btn.click(submit_order, custom_input, final_output) | |
| app.launch() | |