Spaces:
Sleeping
Sleeping
File size: 1,710 Bytes
873849b d4dab20 e35520b d4dab20 e35520b d4dab20 3d58636 d4dab20 e8c00b9 0a4873f 3d58636 ff2929a 3d58636 e35520b 3d58636 d4dab20 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
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()
|