diff --git a/src/app/order/page.tsx b/src/app/order/page.tsx new file mode 100644 index 0000000..77e8f96 --- /dev/null +++ b/src/app/order/page.tsx @@ -0,0 +1,365 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarStyleCentered from "@/components/navbar/NavbarStyleCentered/NavbarStyleCentered"; +import FooterCard from "@/components/sections/footer/FooterCard"; +import { Mail, Linkedin, ShoppingCart, Fish, Truck, Package } from "lucide-react"; +import Image from "next/image"; +import { useState } from "react"; + +interface OrderItem { + id: string; + name: string; + price: number; + quantity: number; + image: string; +} + +export default function OrderPage() { + const [orderItems, setOrderItems] = useState([ + { + id: "1", name: "Goldfood Salmon Premium Loin - 200g", price: 24.99, + quantity: 0, + image: "http://img.b2bpic.net/free-photo/close-up-picture-red-fish-slices_259150-58650.jpg?_wi=1"}, + { + id: "2", name: "Goldfood Salmon Portions - 150g x 4", price: 18.99, + quantity: 0, + image: "http://img.b2bpic.net/free-photo/high-angle-fish-slate-with-cutlery_23-2148643612.jpg"}, + { + id: "3", name: "Premium Seafood Selection Box", price: 34.99, + quantity: 0, + image: "http://img.b2bpic.net/free-photo/top-view-fish-ready-be-cooked_23-2150239066.jpg"}, + { + id: "4", name: "Chef Special - Sea Bass Fillets", price: 29.99, + quantity: 0, + image: "http://img.b2bpic.net/free-photo/front-view-chef-apron-putting-raw-fish-chopping-board-pepper-grinder-pomegranate-seeds-bowl-table_179666-44288.jpg"}, + ]); + + const [email, setEmail] = useState(""); + const [address, setAddress] = useState(""); + const [city, setCity] = useState(""); + const [postalCode, setPostalCode] = useState(""); + const [phone, setPhone] = useState(""); + const [submitted, setSubmitted] = useState(false); + + const updateQuantity = (id: string, quantity: number) => { + setOrderItems( + orderItems.map((item) => + item.id === id ? { ...item, quantity: Math.max(0, quantity) } : item + ) + ); + }; + + const totalPrice = orderItems.reduce( + (sum, item) => sum + item.price * item.quantity, + 0 + ); + + const handleSubmitOrder = async (e: React.FormEvent) => { + e.preventDefault(); + + const orderData = { + email, + address, + city, + postalCode, + phone, + items: orderItems.filter((item) => item.quantity > 0), + totalPrice, + }; + + console.log("Order submitted:", orderData); + setSubmitted(true); + + setTimeout(() => { + setSubmitted(false); + setEmail(""); + setAddress(""); + setCity(""); + setPostalCode(""); + setPhone(""); + setOrderItems(orderItems.map((item) => ({ ...item, quantity: 0 }))); + }, 3000); + }; + + return ( + + + +
+
+ {/* Page Header */} +
+

+ Direct Bestellen +

+

+ Premium seafood direct naar uw deur. Kies uw producten en plaats uw bestelling. +

+
+ +
+ {/* Logo Display */} +
+
+ Goldfood Logo +
+
+ + {/* Product Selection */} +
+
+

+ + Producten +

+
+ {orderItems.map((item) => ( +
+
+ {item.name} +
+
+

+ {item.name} +

+

+ €{item.price.toFixed(2)} +

+
+ + + updateQuantity( + item.id, + parseInt(e.target.value) || 0 + ) + } + className="w-12 text-center px-2 py-1 bg-[var(--background)] text-[var(--foreground)] rounded border border-[var(--accent)]/20" + min="0" + /> + +
+
+
+

+ €{(item.price * item.quantity).toFixed(2)} +

+
+
+ ))} +
+ + {/* Order Summary */} +
+
+ Subtotaal: + €{totalPrice.toFixed(2)} +
+
+ Verzending: + Gratis (NL) +
+
+ Totaal: + + €{totalPrice.toFixed(2)} + +
+
+
+
+ + {/* Delivery Information */} +
+
+

+ + Levering +

+
+
+

Snelle bezorging

+

Binnen 1-2 werkdagen

+
+
+

Verzending

+

Gekoeld & verzegeld

+
+
+

Regio

+

Heel Nederland

+
+
+
+
+
+ + {/* Order Form */} +
+

+ + Afleveradres +

+
+
+
+ + setEmail(e.target.value)} + required + className="w-full px-4 py-2 bg-[var(--background)] text-[var(--foreground)] rounded border border-[var(--accent)]/20 focus:outline-none focus:border-[var(--primary-cta)]" + placeholder="uw@email.com" + /> +
+
+ + setPhone(e.target.value)} + required + className="w-full px-4 py-2 bg-[var(--background)] text-[var(--foreground)] rounded border border-[var(--accent)]/20 focus:outline-none focus:border-[var(--primary-cta)]" + placeholder="+31 6 12345678" + /> +
+
+
+
+ + setAddress(e.target.value)} + required + className="w-full px-4 py-2 bg-[var(--background)] text-[var(--foreground)] rounded border border-[var(--accent)]/20 focus:outline-none focus:border-[var(--primary-cta)]" + placeholder="Straatnaam 123" + /> +
+
+
+ + setPostalCode(e.target.value)} + required + className="w-full px-4 py-2 bg-[var(--background)] text-[var(--foreground)] rounded border border-[var(--accent)]/20 focus:outline-none focus:border-[var(--primary-cta)]" + placeholder="1234 AB" + /> +
+
+ + setCity(e.target.value)} + required + className="w-full px-4 py-2 bg-[var(--background)] text-[var(--foreground)] rounded border border-[var(--accent)]/20 focus:outline-none focus:border-[var(--primary-cta)]" + placeholder="Amsterdam" + /> +
+
+
+ + + +

+ We respecteren je privacy. Je gegevens worden alleen gebruikt voor je bestelling. +

+
+
+
+
+ + +
+ ); +} diff --git a/src/app/page.tsx b/src/app/page.tsx index d341d77..a8ccbc2 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -10,6 +10,7 @@ import FaqSplitMedia from "@/components/sections/faq/FaqSplitMedia"; import ContactSplit from "@/components/sections/contact/ContactSplit"; import FooterCard from "@/components/sections/footer/FooterCard"; import { Sparkles, Fish, Zap, Star, Crown, ChefHat, Package, ShoppingCart, HelpCircle, Mail, Linkedin } from "lucide-react"; +import Image from "next/image"; export default function LandingPage() { return ( @@ -32,6 +33,7 @@ export default function LandingPage() { { name: "Waarom Goldfood", id: "why" }, { name: "Voor Wie", id: "audiences" }, { name: "Hoe het Werkt", id: "how-it-works" }, + { name: "Bestellen", id: "/order" }, { name: "Contact", id: "contact" }, ]} button={{ text: "Vraag Prijs & Sample", href: "contact" }} @@ -48,15 +50,15 @@ export default function LandingPage() { tagAnimation="slide-up" background={{ variant: "radial-gradient" }} leftCarouselItems={[ - { imageSrc: "http://img.b2bpic.net/free-photo/fresh-salmon-fillets-ice-with-rosemary-spices_84443-74003.jpg", imageAlt: "Premium salmon selection" }, + { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AW4PXB76rZD9PAaiHKWMP6l5cV/uploaded-1772696602957-r2y45bmq.png", imageAlt: "Goldfood branding" }, { imageSrc: "http://img.b2bpic.net/free-photo/drone-photo-lake-trees-khao-sok-national-park-daytime_181624-18901.jpg?_wi=1", imageAlt: "Quality sourcing process" }, { imageSrc: "http://img.b2bpic.net/free-photo/high-angle-fish-slate-with-cutlery_23-2148643612.jpg?_wi=1", imageAlt: "Premium seafood display" }, { imageSrc: "http://img.b2bpic.net/free-photo/professional-technologist-white-protective-uniform-controlling-industrial-process-production-plant_342744-1227.jpg?_wi=1", imageAlt: "Professional handling" }, ]} rightCarouselItems={[ - { imageSrc: "http://img.b2bpic.net/free-photo/front-view-chef-apron-putting-raw-fish-chopping-board-pepper-grinder-pomegranate-seeds-bowl-table_179666-44288.jpg?_wi=1", imageAlt: "Professional culinary preparation" }, + { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AW4PXB76rZD9PAaiHKWMP6l5cV/uploaded-1772696602957-vjaajyqj.png", imageAlt: "Product packaging" }, { imageSrc: "http://img.b2bpic.net/free-photo/man-chef-cooking-asian-chicken-cafe-kitchen_1303-32155.jpg?_wi=1", imageAlt: "Horeca kitchen setting" }, - { imageSrc: "http://img.b2bpic.net/free-photo/close-up-japanese-street-food_23-2149287807.jpg?_wi=1", imageAlt: "Premium retail presentation" }, + { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AW4PXB76rZD9PAaiHKWMP6l5cV/uploaded-1772696602957-o0ppoo4q.png", imageAlt: "Premium retail presentation" }, { imageSrc: "http://img.b2bpic.net/free-photo/close-up-picture-red-fish-slices_259150-58650.jpg?_wi=1", imageAlt: "Premium salmon cuts" }, ]} carouselPosition="right" @@ -116,7 +118,7 @@ export default function LandingPage() { textboxLayout="default" useInvertedBackground={false} buttons={[ - { text: "Bekijk Volledig Assortiment", href: "contact" }, + { text: "Bekijk Volledig Assortiment", href: "/order" }, ]} buttonAnimation="slide-up" />