Spaces:
Build error
Build error
| import gradio as gr | |
| from components.cards import create_food_card | |
| from components.data import FOOD_DATA | |
| # Function to generate popup card content | |
| def display_card(food_name): | |
| food_info = FOOD_DATA[food_name] | |
| image_src = f"assets/images/{food_info['image']}" | |
| description = food_info["description"] | |
| price = food_info["price"] | |
| # HTML for the popup | |
| card_html = f""" | |
| <div class="popup-card"> | |
| <img src="{image_src}" alt="{food_name}" class="popup-image" /> | |
| <div class="popup-content"> | |
| <h3>{food_name}</h3> | |
| <p class="price">βΉ{price}</p> | |
| <button class="add-btn">ADD</button> | |
| <p class="customizable">Customizable</p> | |
| <p class="description">{description}</p> | |
| </div> | |
| </div> | |
| """ | |
| return card_html | |
| # Gradio app interface | |
| with gr.Blocks(css="styles.css") as app: | |
| gr.Markdown("# π½οΈ Indian & Chinese Food Nutritional Information App") | |
| gr.Markdown( | |
| """ | |
| ### Explore Popular Dishes π | |
| Click on any dish below to view its image, nutritional facts, and portion size. | |
| """ | |
| ) | |
| # Define the popup area as an HTML component | |
| popup_area = gr.HTML(visible=False, elem_id="popup") | |
| # Display all items as a vertical list | |
| with gr.Column(elem_id="food-list"): | |
| for food_name in FOOD_DATA.keys(): | |
| gr.Button( | |
| value=food_name, | |
| elem_id=f"food-{food_name.replace(' ', '-').lower()}", | |
| interactive=True, | |
| ).click( | |
| lambda x=food_name: display_card(x), | |
| inputs=None, | |
| outputs=popup_area | |
| ) | |
| # Launch the app | |
| app.launch() | |