From e50d4add600556e0287c6fa8382f15c14d1d3050 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 14:16:20 +0000 Subject: [PATCH 1/3] Update src/app/call-to-order/page.tsx --- src/app/call-to-order/page.tsx | 102 +++++++++++++++++++++++++++------ 1 file changed, 85 insertions(+), 17 deletions(-) diff --git a/src/app/call-to-order/page.tsx b/src/app/call-to-order/page.tsx index 8c728b6..98f76af 100644 --- a/src/app/call-to-order/page.tsx +++ b/src/app/call-to-order/page.tsx @@ -2,11 +2,16 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; -import ContactCTA from '@/components/sections/contact/ContactCTA'; +import HeroCentered from '@/components/sections/hero/HeroCentered'; +import ProductCardFour from '@/components/sections/product/ProductCardFour'; +import FeatureCardTwentyOne from '@/components/sections/feature/FeatureCardTwentyOne'; import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal'; -import { Phone, MapPin } from 'lucide-react'; +import { Phone, Clock, MapPin, ShoppingCart, Star } from 'lucide-react'; +import { useState } from 'react'; export default function CallToOrderPage() { + const [selectedOption, setSelectedOption] = useState('pickup'); + return ( -
- + +
+ +
+ Preparation Time: 10-15 minutes
Location: 306 Corniche Street, El Tor
Hours: Open 24/7

Order now and pick up your hot, fresh meal at our counter. No waiting in line—your order will be ready when you arrive!" + }, + { + id: "delivery", title: "🚗 Delivery Service", content: "Preparation Time: 15-20 minutes + delivery
Delivery Area: All of El Tor
Hours: Open 24/7

We'll deliver your favorite meals hot and fresh to your doorstep. Perfect for family gatherings or late-night cravings." + }, + { + id: "drive-through", title: "🚗 Drive-Through Service", content: "Preparation Time: 10-15 minutes
Location: 306 Corniche Street, El Tor
Hours: Open 24/7

Stay in your car and enjoy quick, convenient service. Perfect for busy schedules. Just call ahead to notify us." + } + ]} + buttons={[ + { text: "Call to Order", href: "tel:01100016162" } + ]} + buttonAnimation="slide-up" + /> +
+ + @@ -58,7 +126,7 @@ export default function CallToOrderPage() { text: "Call: 01100016162", href: "tel:01100016162" }} rightLink={{ - text: "306 Corniche Street, El Tor", href: "#location" + text: "306 Corniche Street, El Tor", href: "#" }} /> -- 2.49.1 From 4957c164ee009a7eef130d5d26a1bb1585219240 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 14:16:20 +0000 Subject: [PATCH 2/3] Add src/app/meal/[id]/page.tsx --- src/app/meal/[id]/page.tsx | 305 +++++++++++++++++++++++++++++++++++++ 1 file changed, 305 insertions(+) create mode 100644 src/app/meal/[id]/page.tsx diff --git a/src/app/meal/[id]/page.tsx b/src/app/meal/[id]/page.tsx new file mode 100644 index 0000000..00203b8 --- /dev/null +++ b/src/app/meal/[id]/page.tsx @@ -0,0 +1,305 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; +import { useState } from 'react'; +import { Heart, Plus, Minus, ShoppingCart, MapPin } from 'lucide-react'; +import Image from 'next/image'; + +const mealDetails: Record = { + "1": { + id: "1", name: "Crispy Chicken Box", price: 45, + originalPrice: 50, + rating: 4.8, + reviews: 1250, + imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-legs-with-french-fries-sauce_23-2148646609.jpg?_wi=3", imageAlt: "Crispy chicken box meal", description: "Enjoy our signature crispy chicken box with 4 perfectly fried pieces and golden fries. Made with premium ingredients and our secret crispy coating.", ingredients: [ + "4 pieces premium fried chicken", "Golden french fries", "Crispy coating with secret spices", "Served with dipping sauce" + ], + sizes: [ + { id: "small", name: "Small (2 pieces)", price: 25 }, + { id: "medium", name: "Medium (4 pieces)", price: 45 }, + { id: "large", name: "Large (6 pieces)", price: 65 } + ], + extras: [ + { id: "extra-sauce", name: "Extra Sauce", price: 5 }, + { id: "extra-fries", name: "Extra Fries", price: 10 }, + { id: "coleslaw", name: "Coleslaw Salad", price: 8 }, + { id: "mozzarella-sticks", name: "Mozzarella Sticks (6pc)", price: 15 } + ] + }, + "2": { + id: "2", name: "Spicy Chicken Sandwich", price: 35, + originalPrice: 40, + rating: 4.6, + reviews: 890, + imageSrc: "http://img.b2bpic.net/free-photo/burger-with-meat-white-fried-cheese_140725-2355.jpg?_wi=2", imageAlt: "Spicy chicken sandwich", description: "Crispy fried chicken breast on a toasted bun with fresh lettuce, tomatoes, pickles, and our signature spicy sauce.", ingredients: [ + "Crispy fried chicken breast", "Toasted bun", "Fresh lettuce", "Ripe tomatoes", "Pickles", "Spicy signature sauce" + ], + sizes: [ + { id: "regular", name: "Regular", price: 35 }, + { id: "double", name: "Double Chicken", price: 55 } + ], + extras: [ + { id: "extra-sauce", name: "Extra Spicy Sauce", price: 3 }, + { id: "cheese", name: "Cheddar Cheese", price: 5 }, + { id: "bacon", name: "Crispy Bacon", price: 8 }, + { id: "drink", name: "Soft Drink (500ml)", price: 10 } + ] + }, + "3": { + id: "3", name: "Chicken Wings Basket", price: 55, + originalPrice: 65, + rating: 4.9, + reviews: 2150, + imageSrc: "http://img.b2bpic.net/free-photo/sauce-near-nuggets-beer_23-2147765506.jpg?_wi=2", imageAlt: "Golden chicken wings", description: "8 pieces of crispy chicken wings perfectly seasoned and fried to golden perfection. Served with your choice of dipping sauce.", ingredients: [ + "8 pieces premium chicken wings", "Crispy golden coating", "Secret seasoning blend", "Choice of dipping sauce", "Served with lemon wedges" + ], + sizes: [ + { id: "half", name: "Half Basket (4 pieces)", price: 30 }, + { id: "full", name: "Full Basket (8 pieces)", price: 55 }, + { id: "double", name: "Double Basket (16 pieces)", price: 100 } + ], + extras: [ + { id: "garlic-sauce", name: "Garlic Sauce", price: 5 }, + { id: "bbq-sauce", name: "BBQ Sauce", price: 5 }, + { id: "ranch-sauce", name: "Ranch Sauce", price: 5 }, + { id: "fries", name: "Large Fries", price: 10 } + ] + } +}; + +const recommendedMeals = [ + { + id: "1", name: "Crispy Chicken Box", price: "45 EGP", imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-legs-with-french-fries-sauce_23-2148646609.jpg?_wi=3", imageAlt: "Crispy chicken box meal" + }, + { + id: "2", name: "Spicy Chicken Sandwich", price: "35 EGP", imageSrc: "http://img.b2bpic.net/free-photo/burger-with-meat-white-fried-cheese_140725-2355.jpg?_wi=2", imageAlt: "Spicy chicken sandwich" + }, + { + id: "3", name: "Chicken Wings Basket", price: "55 EGP", imageSrc: "http://img.b2bpic.net/free-photo/sauce-near-nuggets-beer_23-2147765506.jpg?_wi=2", imageAlt: "Golden chicken wings" + } +]; + +export default function MealDetailsPage({ params }: { params: { id: string } }) { + const meal = mealDetails[params.id] || mealDetails["1"]; + const [isFavorited, setIsFavorited] = useState(false); + const [quantity, setQuantity] = useState(1); + const [selectedSize, setSelectedSize] = useState(meal.sizes[0]?.id || ""); + const [selectedExtras, setSelectedExtras] = useState([]); + + const handleAddExtra = (extraId: string) => { + setSelectedExtras(prev => + prev.includes(extraId) + ? prev.filter(id => id !== extraId) + : [...prev, extraId] + ); + }; + + const currentSize = meal.sizes.find((s: any) => s.id === selectedSize) || meal.sizes[0]; + const extrasTotal = selectedExtras.reduce((sum: number, extraId: string) => { + const extra = meal.extras.find((e: any) => e.id === extraId); + return sum + (extra?.price || 0); + }, 0); + const totalPrice = (currentSize.price + extrasTotal) * quantity; + + return ( + + + +
+
+ {/* Main Content */} +
+ {/* Image Section */} +
+
+ {meal.imageAlt} + +
+
+ + ⭐ {meal.rating} ({meal.reviews} reviews) + +
+
+ + {/* Details Section */} +
+

{meal.name}

+

{meal.description}

+ + {/* Price */} +
+ {currentSize.price} EGP + {meal.originalPrice} EGP +
+ + {/* Size Selection */} +
+

Select Size

+
+ {meal.sizes.map((size: any) => ( + + ))} +
+
+ + {/* Extras */} +
+

Add Extras

+
+ {meal.extras.map((extra: any) => ( + + ))} +
+
+ + {/* Quantity & Order */} +
+
+ + {quantity} + +
+ +
+
+
+ + {/* Ingredients */} +
+

Ingredients & Details

+
+
    + {meal.ingredients.map((ingredient: string, index: number) => ( +
  • + + {ingredient} +
  • + ))} +
+
+
+ + {/* Recommended Meals */} +
+

Recommended for You

+
+ {recommendedMeals.map((recommendedMeal) => ( + +
+ {recommendedMeal.imageAlt} +
+
+

+ {recommendedMeal.name} +

+

{recommendedMeal.price}

+
+
+ ))} +
+
+
+
+
+ ); +} -- 2.49.1 From 02cb07242ba2e8ae5cd1847005269739933331ea Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 14:16:21 +0000 Subject: [PATCH 3/3] Update src/app/menu/page.tsx --- src/app/menu/page.tsx | 164 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 147 insertions(+), 17 deletions(-) diff --git a/src/app/menu/page.tsx b/src/app/menu/page.tsx index 0dd379c..65e85e7 100644 --- a/src/app/menu/page.tsx +++ b/src/app/menu/page.tsx @@ -4,7 +4,7 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; import ProductCardFour from '@/components/sections/product/ProductCardFour'; import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal'; -import { Star } from 'lucide-react'; +import { Star, MapPin } from 'lucide-react'; export default function MenuPage() { return ( @@ -26,8 +26,8 @@ export default function MenuPage() { { name: "Home", id: "/" }, { name: "Menu", id: "/menu" }, { name: "About", id: "about" }, - { name: "Location", id: "location" }, - { name: "Contact", id: "contact" } + { name: "Call to Order", id: "tel:01100016162" }, + { name: "Contact", id: "location" } ]} button={{ text: "Order Now", href: "tel:01100016162" @@ -36,41 +36,171 @@ export default function MenuPage() { /> -
+
window.location.href = '/menu/crispy-chicken-box' + id: "1", name: "Classic Chicken Box", price: "45 EGP", variant: "4 pieces with fries", imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-legs-with-french-fries-sauce_23-2148646609.jpg?_wi=1", imageAlt: "Classic chicken box with fries" }, { - id: "2", name: "Spicy Chicken Sandwich", price: "35 EGP", variant: "With lettuce and sauce", imageSrc: "http://img.b2bpic.net/free-photo/burger-with-meat-white-fried-cheese_140725-2355.jpg?_wi=2", imageAlt: "Spicy chicken sandwich", onProductClick: () => window.location.href = '/menu/spicy-chicken-sandwich' + id: "2", name: "Spicy Chicken Box", price: "50 EGP", variant: "4 pieces spicy with fries", imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-legs-with-french-fries-sauce_23-2148646609.jpg?_wi=2", imageAlt: "Spicy chicken box with fries" }, { - id: "3", name: "Chicken Wings Basket", price: "55 EGP", variant: "8 pieces crispy wings", imageSrc: "http://img.b2bpic.net/free-photo/sauce-near-nuggets-beer_23-2147765506.jpg?_wi=2", imageAlt: "Golden chicken wings", onProductClick: () => window.location.href = '/menu/chicken-wings-basket' + id: "3", name: "Family Chicken Box", price: "85 EGP", variant: "8 pieces mixed with large fries", imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-legs-with-french-fries-sauce_23-2148646609.jpg?_wi=3", imageAlt: "Family size chicken box" }, { - id: "4", name: "Chicken Tenders Combo", price: "50 EGP", variant: "6 pieces with sauce selection", imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-tasty-hamburger-wooden-plate-restaurant_181624-50415.jpg?_wi=1", imageAlt: "Chicken tenders combo", onProductClick: () => window.location.href = '/menu/chicken-tenders-combo' + id: "4", name: "Crispy Wings Combo", price: "55 EGP", variant: "8 wings with fries", imageSrc: "http://img.b2bpic.net/free-photo/sauce-near-nuggets-beer_23-2147765506.jpg?_wi=1", imageAlt: "Crispy wings combo" }, { - id: "5", name: "Double Chicken Burger", price: "60 EGP", variant: "Two patties with double cheese", imageSrc: "http://img.b2bpic.net/free-photo/burger-with-meat-white-fried-cheese_140725-2355.jpg?_wi=3", imageAlt: "Double chicken burger", onProductClick: () => window.location.href = '/menu/double-chicken-burger' + id: "5", name: "Mixed Grill Box", price: "65 EGP", variant: "Chicken & wings mix with fries", imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-legs-with-french-fries-sauce_23-2148646609.jpg?_wi=4", imageAlt: "Mixed grill chicken box" }, { - id: "6", name: "Family Box Supreme", price: "150 EGP", variant: "Mixed pieces for 4-5 people", imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-legs-with-french-fries-sauce_23-2148646609.jpg?_wi=4", imageAlt: "Family box supreme", onProductClick: () => window.location.href = '/menu/family-box-supreme' + id: "6", name: "Premium Chicken Box", price: "95 EGP", variant: "12 pieces premium selection", imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-legs-with-french-fries-sauce_23-2148646609.jpg?_wi=5", imageAlt: "Premium chicken box large" + } + ]} + /> +
+ +
+ window.location.href = '/menu/spicy-wings-special' + id: "8", name: "Spicy Chicken Sandwich", price: "38 EGP", variant: "With hot sauce and jalapeños", imageSrc: "http://img.b2bpic.net/free-photo/burger-with-meat-white-fried-cheese_140725-2355.jpg?_wi=2", imageAlt: "Spicy chicken sandwich" }, { - id: "8", name: "Classic Chicken Meal", price: "40 EGP", variant: "3 pieces with fries and drink", imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-tasty-hamburger-wooden-plate-restaurant_181624-50415.jpg?_wi=2", imageAlt: "Classic chicken meal", onProductClick: () => window.location.href = '/menu/classic-chicken-meal' + id: "9", name: "Deluxe Chicken Sandwich", price: "45 EGP", variant: "With cheese and special sauce", imageSrc: "http://img.b2bpic.net/free-photo/burger-with-meat-white-fried-cheese_140725-2355.jpg?_wi=3", imageAlt: "Deluxe chicken sandwich with cheese" + }, + { + id: "10", name: "Crispy Chicken Wrap", price: "40 EGP", variant: "Wrapped in soft tortilla", imageSrc: "http://img.b2bpic.net/free-photo/burger-with-meat-white-fried-cheese_140725-2355.jpg?_wi=4", imageAlt: "Crispy chicken wrap" + }, + { + id: "11", name: "Grilled Chicken Sandwich", price: "42 EGP", variant: "Tender grilled chicken breast", imageSrc: "http://img.b2bpic.net/free-photo/burger-with-meat-white-fried-cheese_140725-2355.jpg?_wi=5", imageAlt: "Grilled chicken sandwich" + }, + { + id: "12", name: "Double Chicken Sandwich", price: "55 EGP", variant: "Two crispy chicken fillets", imageSrc: "http://img.b2bpic.net/free-photo/burger-with-meat-white-fried-cheese_140725-2355.jpg?_wi=6", imageAlt: "Double chicken sandwich" + } + ]} + /> +
+ +
+ +
+ +
+ +
+ +
+ @@ -83,7 +213,7 @@ export default function MenuPage() { text: "Call: 01100016162", href: "tel:01100016162" }} rightLink={{ - text: "306 Corniche Street, El Tor", href: "#location" + text: "306 Corniche Street, El Tor", href: "#" }} />
-- 2.49.1