File size: 8,385 Bytes
f4fc2c6
5c2ec7c
9172822
 
8ce46dc
3986c73
9172822
e8866d5
3986c73
9172822
e8866d5
3986c73
9172822
33b57be
 
9172822
33b57be
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
 
9172822
30db2e0
8ce46dc
e329245
9172822
 
 
670a97d
 
 
 
 
99afd50
670a97d
 
a25ae0f
3d2cf5e
0528a69
f4fc2c6
a25ae0f
 
3d2cf5e
e913a04
a25ae0f
 
 
e913a04
 
0528a69
 
 
 
 
5780ca2
81aba32
8f297a1
59e6c65
f597f53
 
 
 
 
 
99afd50
670a97d
0528a69
f597f53
99afd50
87744f3
f0577e5
 
87744f3
f597f53
 
 
 
 
 
 
f4fc2c6
99afd50
3d2cf5e
99afd50
 
 
f4fc2c6
f597f53
3d2cf5e
 
f4fc2c6
99afd50
 
 
 
 
 
670a97d
f597f53
 
 
 
758e6db
3d2cf5e
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143


import gradio as gr

menu_data = [
    {"name": "Veg Burger", "category": "VEGAN",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/veg_burger.jpg",
     "description": "A delicious vegan burger with plant-based patty, lettuce, and tomato."},
    {"name": "Chicken Biryani", "category": "HALAL",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/chicken_biryani.jpg",
     "description": "Spicy chicken biryani with aromatic basmati rice and tender chicken pieces."},
    {"name": "Paneer Butter Masala", "category": "VEGAN",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/paneer_butter_masala.jpg",
     "description": "Paneer cooked in a rich and creamy tomato-based gravy."},
    {"name": "Beef Steak", "category": "HALAL",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/beef_steak.jpg",
     "description": "Juicy beef steak served with mashed potatoes and grilled vegetables."},
    {"name": "Mushroom Soup", "category": "VEGAN",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/mushroom_soup.jpg",
     "description": "Creamy mushroom soup with fresh herbs."},
    {"name": "Tandoori Chicken", "category": "HALAL",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/tandoori_chicken.jpg",
     "description": "Grilled chicken marinated in yogurt and spices, cooked in a tandoor."},
    {"name": "Grilled Veggies", "category": "VEGAN",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/grilled_veggies.jpg",
     "description": "A healthy mix of grilled seasonal vegetables with olive oil."},
    {"name": "Butter Naan", "category": "VEGAN",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/butter_naan.jpg",
     "description": "Soft and buttery flatbread, perfect to pair with any curry."},
    {"name": "Fish Curry", "category": "HALAL",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/fish_curry.jpg",
     "description": "Fresh fish cooked in a spicy and tangy curry."},
    {"name": "Vegetable Salad", "category": "VEGAN",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/vegetable_salad.jpg",
     "description": "A mix of fresh greens, tomatoes, cucumbers, and a light dressing."},
    {"name": "Veg Spring Rolls", "category": "VEGAN",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/veg_spring_rolls.jpg",
     "description": "Crispy spring rolls filled with fresh vegetables."},
    {"name": "Chicken Kebab", "category": "HALAL",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/chicken_kebab.jpg",
     "description": "Juicy chicken kebabs grilled to perfection with a mix of spices."},
    {"name": "Dal Makhani", "category": "VEGAN",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/dal_makhani.jpg",
     "description": "Rich and creamy black lentils slow-cooked with spices."},
    {"name": "Lamb Curry", "category": "HALAL",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/lamb_curry.jpg",
     "description": "Tender lamb pieces cooked in a flavorful curry sauce."},
    {"name": "Mixed Veg Curry", "category": "VEGAN",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/mixed_veg_curry.jpg",
     "description": "A medley of fresh vegetables cooked in a lightly spiced curry."},
    {"name": "Chicken Wings", "category": "HALAL",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/chicken_wings.jpg",
     "description": "Crispy chicken wings tossed in a tangy sauce."},
    {"name": "Aloo Paratha", "category": "VEGAN",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/aloo_paratha.jpg",
     "description": "Indian flatbread stuffed with spiced mashed potatoes."},
    {"name": "Egg Curry", "category": "HALAL",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/egg_curry.jpg",
     "description": "Boiled eggs cooked in a spiced tomato gravy."},
    {"name": "Chickpea Salad", "category": "VEGAN",
     "image": "https://huggingface.co/spaces/Rammohan0504/dynamic_menu/resolve/main/images/chickpea_salad.jpg",
     "description": "A refreshing salad made with chickpeas, fresh vegetables, and herbs."}
]

# The rest of the code remains unchanged


def filter_dishes(category):
    if category == "ALL":
        return menu_data
    return [dish for dish in menu_data if dish["category"] == category]

# Function to generate dish cards
def display_dishes(category):
    filtered_dishes = filter_dishes(category)
    html_content = "<div style='display: flex; flex-direction: column; align-items: center; width: 100%;'>"
    for dish in filtered_dishes:
        html_content += f"""
        <div style='margin: 10px; display: flex; align-items: center; justify-content: space-between; 
                    width: 80%; padding: 10px; border: 1px solid #ddd; border-radius: 10px; 
                    background-color: #f9f9f9; cursor: pointer;'
             onclick="showPopup('{dish['image']}', '{dish['name']}', '{dish['description']}')">
            <div style='flex: 1; margin-right: 20px;'>
                <h4 style='font-size: 18px; color: #444; margin: 0;'>{dish['name']}</h4>
                <p style='font-size: 14px; color: #666; margin: 5px 0;'>{dish['description']}</p>
            </div>
            <img src='{dish['image']}' alt='{dish['name']}' 
                 style='width: 120px; height: 80px; object-fit: cover; border-radius: 10px;'>
        </div>
        """
    html_content += "</div>"
    return html_content

# Main Gradio App
with gr.Blocks() as demo:
    gr.HTML("<h1 style='text-align: center; color: #333;'>πŸ› Biryani Hub Menu πŸ›</h1>")

    # Buttons for category selection
    with gr.Row():
        btn_all = gr.Button("ALL")
        btn_vegan = gr.Button("VEGAN")
        btn_halal = gr.Button("HALAL")

    # Dish display
    dish_display = gr.HTML(value=display_dishes("ALL"))

    # JavaScript for managing the pop-up
    gr.HTML("""
    <div id="popup" style="display: none; position: fixed;cursor: pointer;-webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; left: 50%; transform: translate(-50%, 100%);
                          background-color: white; padding: 20px; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); 
                          z-index: 1000; text-align: center; width: 300px;">
        <img id="popup-image" src="" alt="" style="width: 100%; height: auto; border-radius: 10px;">
        <h2 id="popup-title" style="margin-top: 20px; color: #444;"></h2>
        <p id="popup-description" style="margin-top: 10px; font-size: 16px; color: #666;"></p>
        <button onclick="closePopup()" style="margin-top: 10px; padding: 10px 20px; background-color: #28a745; 
                                              color: white; border: none; border-radius: 5px; cursor: pointer;">Close</button>
    </div>
    <script>
        function showPopup(image, title, description) {
            document.getElementById('popup-image').src = image;
            document.getElementById('popup-title').textContent = title;
            document.getElementById('popup-description').textContent = description;

            // Adjust the popup to always appear at the top of the viewport
            const popup = document.getElementById('popup');
            popup.style.top = window.pageYOffset + 'px';
            popup.style.display = 'block';
        }
        function closePopup() {
            document.getElementById('popup').style.display = 'none';
        }
    </script>
    """)

    # Button click events
    btn_all.click(lambda: gr.update(value=display_dishes("ALL")), outputs=dish_display)
    btn_vegan.click(lambda: gr.update(value=display_dishes("VEGAN")), outputs=dish_display)
    btn_halal.click(lambda: gr.update(value=display_dishes("HALAL")), outputs=dish_display)

demo.launch()